我正在嘗試製作高級「請勿打擾」應用程序,因此我使用SDK中的NotificationListenerService。每當onNotificationPosted觸發時,我可以取消通知並將其從通知抽屜中刪除。但是,手機仍然振動了半秒鐘,用戶仍然意識到通知,導致整個應用程序不太實用。Android NotificationListenerService:阻止顯示通知
你會知道如何解決這個問題,並有效防止電話振鈴/振動呢?
預先感謝
我正在嘗試製作高級「請勿打擾」應用程序,因此我使用SDK中的NotificationListenerService。每當onNotificationPosted觸發時,我可以取消通知並將其從通知抽屜中刪除。但是,手機仍然振動了半秒鐘,用戶仍然意識到通知,導致整個應用程序不太實用。Android NotificationListenerService:阻止顯示通知
你會知道如何解決這個問題,並有效防止電話振鈴/振動呢?
預先感謝
,關閉通知的聲音,可以使用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
活動結束恢復到以前的狀態。
和here