我有一个应用程序需要能够覆盖Android 7/8中的请勿打扰访问。我有检查权限的代码,如果没有检测到,就会打开请勿打扰访问屏幕:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
&& !notificationManager.isNotificationPolicyAccessGranted()) {
Intent intent = new Intent(
android.provider.Settings
.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
context.startActivity(intent);另外,我在清单中设置了以下权限:
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />这在一些设备和我使用过的所有虚拟设备上都运行得很好,但在其他设备上,比如运行Android 8的Pixel,我的应用程序根本不会出现在请勿打扰访问列表中,因此用户无法授予它覆盖请勿打扰的能力。是否有特定的权限或Android正在寻找的东西,以使应用程序始终出现在请勿打扰访问列表中?
发布于 2017-10-08 04:13:47
我知道这没什么用,但我已经成功地在几个Pixels上运行了一个应用程序,没有任何问题。但是有一个客户端有您描述的完全相同的问题。我拥有与您相同的代码/权限。
编辑-我的客户解决了他自己的问题。在他的手机上,应用程序分为工作应用和个人应用。将我的应用程序更改为personal会使其出现在列表中。也许这也是你的问题。
发布于 2019-09-10 13:44:31
根据文档,这是不可能的。
ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS
活动操作:显示免打扰访问设置。
用户可以从此处授予和拒绝免打扰配置的访问权限。管理的配置文件无法授予免打扰访问。有关更多详细信息,请参阅NotificationManager.isNotificationPolicyAccessGranted()。
发布于 2022-02-20 02:12:40
您必须在应用程序清单中添加权限ACCESS_NOTIFICATION_POLICY
https://stackoverflow.com/questions/46425938
复制相似问题