4

由于 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" />

如果有人知道解决这个问题的方法,那就太棒了!

4

1 回答 1

3

WRITE_SECURE_SETTINGS是一种signature|system权限,只能由使用固件的签名密钥签名或驻留在系统分区上的应用程序持有。因此,虽然你可以要求它,但你不能持有它。

于 2012-11-14T13:56:03.650 回答