2017-05-26 261 views
1

我正在嘗試製作高級「請勿打擾」應用程序,因此我使用SDK中的NotificationListenerService。每當onNotificationPosted觸發時,我可以取消通知並將其從通知抽屜中刪除。但是,手機仍然振動了半秒鐘,用戶仍然意識到通知,導致整個應用程序不太實用。Android NotificationListenerService:阻止顯示通知

你會知道如何解決這個問題,並有效防止電話振鈴/振動呢?

預先感謝

回答

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活動結束恢復到以前的狀態。


回答 here

here