我正在尝试从 Huawei Launcher Android 23+(需要运行时权限)访问有关通知徽章的信息。
我的 list 中已经有这些行:
<uses-permission
android:name="com.huawei.android.launcher.permission.READ_SETTINGS"/>
<uses-permission
android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS"/>
然而我收到了这个 RuntimeException 消息:
Permission Denial: reading com.huawei.android.launcher.LauncherProvider
uri content://com.huawei.android.launcher.settings/badge/ from pid=16687,
uid=10192 requires com.huawei.android.launcher.permission.READ_SETTINGS, or grantUriPermission()
使用 ActivityCompat.requestPermissions
请求权限会立即返回 "-1"== DENIED
。
即使尝试通过 ADB 设置权限也无济于事:
adb -d shell pm grant com.yandex.launcher com.huawei.android.launcher.permission.READ_SETTINGS
Operation not allowed: java.lang.SecurityException: Permission com.huawei.android.launcher.permission.READ_SETTINGS is not a changeable permission type
我尝试通过以下方式授予 URI 访问权限
context.grantUriPermission(context.getPackageName(), getBadgeContentUri(), Intent.FLAG_GRANT_READ_URI_PERMISSION);
或
context.grantUriPermission("com.huawei.android", getBadgeContentUri(), Intent.FLAG_GRANT_READ_URI_PERMISSION);
但这也无济于事。
那么我应该写些什么才能获得适当的阅读权限:content://com.huawei.android.launcher.settings/badge/
最佳答案
你需要<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
在 list 中。
关于android - 华为桌面设置SDK 23+如何授权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49153594/