1

Android 6 エミュレーターでアプリをテストしていますが、次の例外でアプリがクラッシュし始めていることがわかりました。

Caused by: java.lang.SecurityException: net.hubalek.android.xxx was not granted  this permission: android.permission.WRITE_SETTINGS.
        at android.os.Parcel.readException(Parcel.java:1599)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
        at android.content.ContentProviderProxy.call(ContentProviderNative.java:646)
        at android.provider.Settings$NameValueCache.putStringForUser(Settings.java:1322)
        at android.provider.Settings$System.putStringForUser(Settings.java:1671)
        at android.provider.Settings$System.putIntForUser(Settings.java:1776)
        at android.provider.Settings$System.putInt(Settings.java:1770)
....

さらに調査した結果、http: //developer.android.com/reference/android/Manifest.permission.html#WRITE_SETTINGSのjavadocによると、protectionLevel="signature"

Androidの以前のバージョンでは、保護が低かったと思います(normalまたはdangerous、思い出せません)。

私の質問は次のとおりです。この変化を克服する方法はありますか? https://developer.android.com/reference/android/R.attr.html#protectionLevelに書かれています

要求元のアプリケーションが、許可を宣言したアプリケーションと同じ証明書で署名されている場合にのみ、システムが付与する許可。証明書が一致する場合、システムは、ユーザーに通知したり、ユーザーの明示的な承認を求めたりすることなく、アクセス許可を自動的に付与します。

しかし、システム権限に関して、この条件を満たす方法がわかりません。

4

0 に答える 0