在我的代码中,我有:
Settings.System.putInt(this.getContentResolver(), "vibrate_when_ringing", isVibrateWhenRinging ? 1 :0);
使用以下权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
从 Jelly Bean (API 16) 到 Lollipop (API 22) 都可以正常工作。
在 Android M 中,我知道要使用该权限,我需要提示用户Settings.ACTION_MANAGE_WRITE_SETTINGS。
但是,即使打开了该权限,我也会看到以下错误:
E/AndroidRuntime: java.lang.IllegalArgumentException: You cannot change private secure settings.
E/AndroidRuntime: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165)
E/AndroidRuntime: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
E/AndroidRuntime: at android.content.ContentProviderProxy.call(ContentProviderNative.java:646)
嗯......我错过了什么吗?有了适当的权限,我们可以更改铃声、请勿打扰模式等。但看起来在 Android M 中我们将无法更改“振铃时振动”这样的正常设置。我希望我错了。