首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android如何以编程方式打开免打扰(dnd)

Android如何以编程方式打开免打扰(dnd)
EN

Stack Overflow用户
提问于 2015-08-07 02:02:41
回答 3查看 29.8K关注 0票数 48

如何在Android中以编程方式打开/关闭“请勿打扰”(dnd)?希望这能给我一些东西,但它没有:

代码语言:javascript
复制
Settings.System.putInt(getContentResolver(), Settings.System.DO_NOT_DISTURB, 1);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-11 03:28:15

我找到了这个解决方案:

代码语言:javascript
复制
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_NONE);

它需要:

代码语言:javascript
复制
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />

据我所知,在执行requestPermissions()时不会弹出请求对话框。它必须通过设置菜单设置->声音和通知->请勿打扰访问权限来授予。

这是SDK 23中的棉花糖。

票数 41
EN

Stack Overflow用户

发布于 2016-03-23 02:25:34

只是改进了乔丹·帕森斯的答案。要设置优先级,您需要一个权限,该权限只能通过询问打开活动的用户来获得。系统将提示一项活动,询问您是否要为您的应用程序启用请勿打扰权限。

此活动可通过以下方式打开:

代码语言:javascript
复制
 NotificationManager mNotificationManager = (NotificationManager) getActivity().getSystemService(Context.NOTIFICATION_SERVICE);

 // Check if the notification policy access has been granted for the app.
 if (!mNotificationManager.isNotificationPolicyAccessGranted()) {
     Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
     startActivity(intent);
 }

授予此权限后,可以更改此设置。

票数 31
EN

Stack Overflow用户

发布于 2017-03-08 12:53:35

对于那些为LG G4而苦苦挣扎的人,有一个变通办法。

LG未将设置选项设置为授予

代码语言:javascript
复制
permission.ACCESS_NOTIFICATION_POLICY 

因此,当它收到

代码语言:javascript
复制
ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS 

然而,LG确实设置了授予

代码语言:javascript
复制
permission.BIND_NOTIFICATION_LISTENER_SERVICE

一旦授予了这个权限,也是如此。

代码语言:javascript
复制
permission.ACCESS_NOTIFICATION_POLICY 

(至少在LG G4上)。此选项位于设置->常规->安全->通知访问下。为了使用户能够授予此权限,您的应用程序需要请求此权限。这是通过声明您的服务来完成的,假设您的应用程序有一个服务,如清单中所示:

代码语言:javascript
复制
<service android:name="myService"
         android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
    <intent-filter>
        <action android:name="android.service.notification.NotificationListenerService" />
    </intent-filter>
</service>
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31862753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档