gpt4 book ai didi

android - 如何在 android 6.0 中赋予权限 com.sec.android.provider.badge.permission.READ 或 WRITE

转载 作者:行者123 更新时间:2023-11-30 00:32:05 26 4
gpt4 key购买 nike

当通知来自服务器时,我正在尝试在应用程序图标上显示徽章。

我遇到了这个异常:

Caused by: java.lang.SecurityException: Permission Denial: opening provider com.sec.android.provider.badge.BadgeProvider from ProcessRecord{ab1124 10588:com.rehq.app/u0a175} (pid=10588, uid=10175) requires com.sec.android.provider.badge.permission.READ or com.sec.android.provider.badge.permission.WRITE

最佳答案

从 Android 6.0 开始,您需要在需要权限之前在运行时请求权限。

下面的示例是针对 WRITE 权限的(我猜你想在应用程序图标上添加一个徽章,通常你不需要 READ 权限 - 如果你需要它,你可以像写许可)

首先在 list 中添加您的权限:

<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE"/>

然后你可以像这样在运行时检查它们是否被授予:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M 
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_SETTINGS) != PackageManager.PERMISSION_GRANTED) {
//permissions not granted -> request them
requestPermissions(new String[] {Manifest.permission.WRITE_SETTINGS}, YOUR_REQUEST_CODE);
} else {
//permissions are granted - do your stuff here :)
}

结果将在 onRequestPermissionResult 中可用:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
if (requestCode == YOUR_REQUEST_CODE) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_SETTINGS) == PackageManager.PERMISSION_GRANTED) {
//permissions granted -> do your stuff ;-)
}
//Permission not granted -> react to it!
return;
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}

您可以在 official docs 中阅读更多相关信息

关于android - 如何在 android 6.0 中赋予权限 com.sec.android.provider.badge.permission.READ 或 WRITE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44133927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com