在我的代码有:vibrate_when_ringing在Android棉花糖(6.0)
Settings.System.putInt(this.getContentResolver(), "vibrate_when_ringing", isVibrateWhenRinging ? 1 :0);
使用以下权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
这从果冻豆做工精细(API 16),直到棒棒堂(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我们也无法改变像“振铃时振动”这样的正常设置。我希望我错了。
目前还不清楚它是否是一个bug,但是不可能写很多设置:( – greywolf82
我发现如果你将targetSdkVersion设置为22即使你在Android M中运行,那么更改vibrate_when_ringing也会起作用。这在我看来是23中的一个bug。 –