在android 10的設備上,用以下方法賦值時 報錯了,但是getxxx方法還可以獲取值
Settings.System.putString(getContentResolver(),
"data_text01", text.getText().toString());
報錯log如下
java.lang.SecurityException: test.com.test was not granted this permission: android.permission.WRITE_SETTINGS. at android.provider.Settings.isCallingPackageAllowedToPerformAppOpsProtectedOperation(Settings.java:11327) at android.provider.Settings.checkAndNoteWriteSettingsOperation(Settings.java:11209) at com.android.providers.settings.SettingsProvider.mutateSystemSetting(SettingsProvider.java:1400) at com.android.providers.settings.SettingsProvider.insertSystemSetting(SettingsProvider.java:1375) at com.android.providers.settings.SettingsProvider.call(SettingsProvider.java:374) at android.content.ContentProvider$Transport.call(ContentProvider.java:403) at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:272) at android.os.Binder.execTransact(Binder.java:704)
然后在androidmanifest.xml加了
android.permission.WRITE_SETTINGS,然后又加了動態權限 還是不行,
看了源碼后,才知道 非系統級應用不能使用putxxx()方法了,特此記錄一下,