在我的代碼有: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。 –