android - 华为桌面设置SDK 23+如何授权?

标签 android uri android-contentprovider badge huawei-mobile-services

我正在尝试从 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/

相关文章:

android - 如何将 wrap_content 作为高度分配给动态加载的 gridview

java - 重新创建 fragment 后恢复 UI 状态

string - JDK 1.4 与 JDK 1.5 中的 java URI 变化

java - 如何使用指定客户端以编程方式从 Java 发送电子邮件附件

.net - 在 OpenRasta 中是否可以模式匹配多个键/值对?

android - Android 中的全局搜索是否仍然可供开发人员使用?

javascript - Chrome 的安全性阻止我发送电子邮件,Android 也会阻止它吗?

java - 如何在 android 的自动完成 TextView 中设置联系人号码?

Android:微调器在数据集更改后不更新

java - Android 应用程序崩溃 ActivityManager 权限在 Eclipse 上被拒绝