2013-10-25 2 views
1

У меня возникла проблема в версии 4.3 для Android, чтобы управлять режимом самолета по коду. Для этого я преобразовал пользовательское приложение в систему с помощью приложения system/app mover, доступного в google play.Once пользователь разрешает режим самолета, служба фона имеют контроль, чтобы проверить режим самолета и сбросить его в состояние «выключено» и отправить изменения широковещания на устройство. Оставьте фрагмент, который я выполнил в своем коде, чтобы отключить состояние режима полета. Но он не работает в версии для Android 4.3. Он выдает исключение, называемое «разрешение отклонено». Позвольте мне знать, что любое дополнительное разрешение необходимо добавить в манифест или сообщить мне ваши предложения по этой проблеме исправлены.Переключатель режима полета в Android 4.3

try { 
        Settings.Global.putInt(context.getContentResolver(), 
          "airplane_mode_on", 0); 
        isAirplaneModeOn = isAirplaneModeOn(context); 
        Intent localIntent2 = new Intent(
          "android.intent.action.AIRPLANE_MODE"); 
        localIntent2.putExtra("state", isAirplaneModeOn); 
        context.sendBroadcast(localIntent2); 
       } catch (Exception e) { 
        Log.v("TAG", 
          e.toString() + "\n" + e.getMessage()); 
       } 

ответ

1

Перемещение приложения в/системы/папки приложения делает не превратить его в System App - это просто делает App uninstallable, потому что/система, как правило, установлена ​​только для чтения.

Что вы пытаетесь сделать, требует полных привилегий системного приложения. Вы можете получить их, подписав свое приложение с помощью того же ключа, который используется для подписи оригинальной прошивки Apps - платформы. Другими словами, вам нужен доступ к тем, кто создал версию Android, на которой вы работаете, и заставить их подписать APK.

0

Фактически вы не можете сделать это, начиная с Android 4.2. Поскольку эти настройки были перемещены здесь из настроек. System или Settings.Secure. Но на предыдущих моделях он отлично работает.

http://developer.android.com/about/versions/android-4.2.html

Если ваше приложение в настоящее время вносить изменения в параметры определены ранее в Settings.System (например, AIRPLANE_MODE_ON), ​​то вы должны ожидать , что делать так больше не будет работать на устройстве под управлением Android 4.2 или выше, если эти настройки были перенесены в Settings.Global.

Связанные вопрос о StackOverflow

Смежные вопросы