【问题标题】:Android NotificationListenerService : prevent notification from being displayedAndroid NotificationListenerService : 阻止显示通知
【发布时间】:2017-05-26 17:05:29
【问题描述】:

我正在尝试制作一个高级的“请勿打扰”应用,因此我正在使用 SDK 中的 NotificationListenerService。每当 onNotificationPosted 触发时,我都可以取消通知并将其从通知抽屉中删除。但是,手机仍会振动半秒钟,并且用户仍会注意到通知,从而使整个应用变得不那么有用。

您知道如何解决这个问题并有效地防止手机响铃/振动吗?

提前致谢

【问题讨论】:

    标签: android notifications


    【解决方案1】:

    要关闭通知的声音,请使用AudioManager,如下所示:

    // Turn off sound
    mAudioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true); 
    
    // Turn on sound
    mAudioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, false);
    

    关闭振动比较棘手

    setVibrateSetting api 在 API 16 中已弃用。根据 [android developer site](https://developer.android.com/reference/android/media/AudioManager.html#setVibrateSetting(int, int)),

    应用程序应根据可通过 getRingerMode() 查询的当前振铃模式维护自己的振动策略。

    一个丑陋的解决方法是使用振铃模式通过RINGER_MODE_SILENT 启用/禁用振动。 这将使整个手机静音(来电和通知)

    AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
    audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
    

    并在几秒后或onNotificationPosted事件结束时显示通知时恢复到之前的状态。


    herehere 的回答

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      相关资源
      最近更新 更多