Android飞行模式API lvl 17切换

4

自api lvl 17起,飞行模式设置已从Settings.System移动到Settings.Global

问题是现在我无法再切换设置。API描述是这些设置是只读的。有人成功找到了改变它的方法吗?

API级别低于17的代码:

Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 1);

我尝试过的 API lvl 17 的代码,但不起作用:

Settings.Global.putInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, setMode);

它抛出异常(文档说应该抛出静默日志错误):
11-14 13:39:51.649: E/AndroidRuntime(3509): java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS

但我在清单文件中有这个权限:
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

如果有人知道解决方法,那就太棒了!!
1个回答

3

WRITE_SECURE_SETTINGS是一个signature|system权限,只能由使用固件签名密钥签署的应用程序或驻留在系统分区上的应用程序持有。因此,虽然您可以请求此权限,但无法持有该权限。


感谢您的回答。我通过使用类似Titanium备份的应用程序将我的应用转换为系统应用程序来绕过此问题。但是很少有用户能够做到这一点。看起来没有简单的解决方案。 - Bojan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接