Android5.0提供了一种新的方法来控制哪些应用程序可以在设备上发出噪音:当您按音量按钮时,弹出窗口现在允许您选择None (完全静默)、优先级(只允许优先级通知发出声音)或All (一切都允许发出噪音)。

我希望我的应用程序能够查询设备,找出这三种模式中的哪一种是当前活动的,而且我也希望能够更改这些模式(而不要求设备扎根)。有人知道怎么做吗?
到目前为止,我所能找到的只是一个简短的参考关于这一变化g
将设备设置为RINGER_MODE_SILENT将使设备进入新的优先级模式。如果将设备设置为RINGER_MODE_NORMAL或RINGER_MODE_VIBRATE,则该设备将保留优先级模式。
正如所描述的,它允许我通过修改AudioManager中的环形模式来更改“优先级模式”的能力非常有限。不过,这还不够,因为我需要确切地知道三种优先级模式中的哪一种是当前活动的,如果我能够比AudioManager允许的更精确地更改它们,那就更好了。
发布于 2014-11-13 17:07:24
我找到了一个解决方案,但这需要根来改变,因为这个设置在Settings.Global中。
设置名称为"zen_mode“。
价值是:
ZENMODE_ALL = 0;
ZENMODE_PRIORITY = 1;
ZENMODE_NONE = 2;编辑:我找到了另一个解决方案。检查NotificationListenerService.requestInterruptionFilter(int interruptionFilter)。https://developer.android.com/reference/android/service/notification/NotificationListenerService.html实现示例:https://github.com/kpbird/NotificationListenerService-Example
https://stackoverflow.com/questions/26850743
复制相似问题