本文介绍了如何将通知访问屏幕过滤到我的应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前,我通过以下方式请求使用通知访问(通知侦听器服务)的权限:

startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));

这确实有效,但用户必须从应用列表中选择我的应用。

为了提高可用性,我希望它看起来更像这样

有人知道如何正确筛选它吗?

对于使用权限设置,我使用以下代码:

Intent myIntent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS, Uri.parse("package:" + getPackageName()));
startActivity(myIntent);

遗憾的是,这不适用于通知访问设置。
错误:

No Activity found to handle Intent { act=android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS dat=package:notificationmanager }

推荐答案

找到解决方案:

ComponentName componentName = new ComponentName(getPackageName(), YOUR_LISTENER_CLASS.class.getName());
Intent notificationAccessSettings = 
    new Intent(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_DETAIL_SETTINGS));

notificationAccessSettings.putExtra(Settings.EXTRA_NOTIFICATION_LISTENER_COMPONENT_NAME, componentName.flattenToString());
            
startActivity(notificationAccessSettings);

这只是在API版本30中引入的,我不知道有什么方法(或者它是否可能)适用于更早的版本。

这篇关于如何将通知访问屏幕过滤到我的应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。