2013-10-25 53 views
1

我在Android 4.3版中面临一个问题,通过代码控制飞行模式。为此,我将用户应用程序转换为使用系统/应用程序移动程序应用程序的系统/谷歌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

移动一个应用程序到/系统/应用程序文件夹不把它变成一个系统应用程序 - 它只是使应用程序卸载的,因为/通常安装只读的系统。

您要做的事情需要完整的系统应用程序权限。您只能通过使用用于签署原始固件应用程序的相同密钥(平台密钥)对应用程序进行签名来获得这些内容。换句话说,您需要访问构建您正在运行的Android版本的人员,并让他们签署APK。

0

其实你不能从Android 4.2开始。因为这些设置是从Settings.System或Settings.Secure中重新定位的。但在以前的vesions它工作正常。

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

如果您的应用目前正在对设置的更改以前在Settings.System(如AIRPLANE_MODE_ON),那么你就应该想到 定义 ,这样做将在设备运行Android不再起作用如果这些设置已移至Settings.Global,则会提高4.2或 。

StackOverflow

相关问题