此代码:
Settings.System.putInt(context.getContentResolver(), POWER_KEY_DEFINITION, 1);
产生错误:
java.lang.IllegalArgumentException: You cannot keep your settings in the secure settings.
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.call(ContentProviderNative.java:646)
at android.provider.Settings$NameValueCache.putStringForUser(Settings.java:1595)
at android.provider.Settings$System.putStringForUser(Settings.java:1965)
at android.provider.Settings$System.putIntForUser(Settings.java:2070)
at android.provider.Settings$System.putInt(Settings.java:2064)
at com.example.sasho.timer2.MainActivity$1$1.run(MainActivity.java:155)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:892)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
另一个SO question提供了相同错误的答案,他们说“ Settings.System用于平台定义的设置。您不能在其中放置任意设置,例如test.hemant。”
但是就我而言,这不是我要放置的任意系统设置。我知道它存在于我正在使用的电视盒中,因为在以任何方式尝试对其进行重写或创建之前,我都使用Settings.getInt方法进行了检查以获取其值,并且确实存在一个值。我使用遥控器更改了相应的设置,getInt反映了更改。我该如何解决该错误?我的清单中确实有WRITE_SETTINGS和WRITE_SECURE__SETTINGS权限。