Android 8:当铃声模式为静音时,无法将铃声模式更改为非静音

时间:2019-01-14 10:38:23

标签: android android-8.0-oreo android-broadcastreceiver

我编写了一个Android应用程序,如果BroadcastReceiver收到通知,则将振铃器模式从任何模式更改为正常模式。

在Android <8上运行良好。

如果广播接收器做出反应时振铃模式!=静音,它也适用于我的Android 8设备。

  • 铃声模式!=静音并将其更改为任何铃声模式
    • 在所有设备上均可使用
  • 铃声模式==静音并将其更改为静音模式
    • 在所有设备上均可正常运行
  • 铃声模式==静音并将其更改为非静音模式
    • 仅在装有Android <8的旧设备上工作

在Android 8上从静默更改为非静默时,出现异常提示Boradcast already finished?!

此行为仅在我的Android 8设备上有效,较旧的设备运行正常。

有人可以帮助解决这种奇怪的行为吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了解决该问题的方法:这是由较新的Android版本中的“请勿打扰”模式引起的。

要禁用此静音模式,您必须

  1. 向AndroidManifest添加权限:

    uses-permission android:name =“ android.permission.ACCESS_NOTIFICATION_POLICY”

  2. 通过以下意图要求用户允许退出此请勿打扰模式:

    Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS); startActivity(intent);

另请参阅以下问题/答案:In Android 7 (API level 24) my app is not allowed to mute phone (set ringer mode to silent)