gpt4 book ai didi

android - NotificationManager 所需的权限

转载 作者:行者123 更新时间:2023-12-05 00:08:39 35 4
gpt4 key购买 nike

我正在尝试使用以下方法将振铃器设置为静音并将请勿打扰设置为仅优先

AudioManager myAudioMgr = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
NotificationManager myNOtificationMgr = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

myAudioMgr.setRingerMode(AudioManager.RINGER_MODE_SILENT);
myNOtificationMgr.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY);

我一直收到安全错误

java.lang.RuntimeException: Unable to start receiver MyBroadcastReceiver: java.lang.SecurityException: Notification policy access denied

我已将访问通知策略权限添加到我的 list 文件

<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />

我是否缺少额外的权限?

最佳答案

似乎用户需要通过设置屏幕明确授予应用程序权限,以便应用程序通过通知 API 操纵优先级/静默。我假设您正在为此使用 notificationManager 类。一些可能对您有帮助的链接:

https://developer.android.com/reference/android/provider/Settings.html#ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS

https://developer.android.com/reference/android/app/NotificationManager.html#ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED

我认为基本上您需要做的是将用户引导至“显示请勿打扰访问设置”并让他启用通知管理选项(例如,您会为模拟位置执行的操作类似)

示例代码:

startActivityForResult(new Intent(android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS), 0);

希望这对您有所帮助。

关于android - NotificationManager 所需的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41308512/

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