由于api lvl 17飞行模式设置已从Settings.System移至Settings.Global
问题是现在我不能再切换设置了。 API描述是这些设置是只读的。有没有人设法找到改变它的方法?
Pre API lvl 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" />
如果有人知道解决这个问题的方法会很棒!!
答案 0 :(得分:3)
WRITE_SECURE_SETTINGS
是signature|system
权限,只能由使用固件签名密钥签名或驻留在系统分区上的应用程序保留。因此,虽然你可以要求它,但你不能坚持它。