2015-05-10 30 views
2

目前我使用下面把手機變成靜音模式:把棒棒糖成靜音模式/靜音模式不是優先模式

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

但我已經注意到,棒棒堂,它把手機變成「優先模式「,通知欄頂部有一顆小星星。但我希望它100%保持沉默,而不是「優先模式」。這可能嗎?設置棒棒糖100%保持沉默?

我已經嘗試了setRingerMode設置爲0,這樣

audioManager.setRingerMode(0); 

但它仍然給我的明星,而不是揚聲器與線通過它,它說,振動與(優先級)括號內下它。

回答

4

在Android 5.0.X中,調用setRingerMode(RINGER_MODE_SILENT)會(i)觸發「優先模式」,這將(ii)隨後觸發將振鈴器模式更改回到RINGER_MODE_NORMAL。

一個野蠻的解決方法,利用Android 5.0.X中的一個bug,在觸發上面的動作(ii)之後的短時間內(比如500ms)再次發出setRingerMode(RINGER_MODE_SILENT)調用。但這當然是不正確的,應該停止在Android 5.1.X上工作。

在5.X中實現100%靜音的正確方法是切換到「無」中斷模式。這可以通過創建一個擴展NotificationListenerService的服務來實現,註冊它並通過在服務中調用requestInterruptionFilter(INTERRUPTION_FILTER_NONE)來提供設置中斷模式的功能。 Here (Noyze app)就是一個例子。然後,您可以從您的活動中調用該功能以切換到該模式。

爲此,您需要使用BIND_NOTIFICATION_LISTENER_SERVICE權限,並明確授予用戶的通知訪問權限。

小心:您可能知道INTERRUPTION_FILTER_NONE確實意味着100%的安靜,而鬧鐘將停止工作。

+0

這是要走的路。不幸的是,谷歌說改爲RINGER_SILENT_MODE將切換到優先級,我檢查了這不是所有設備。requestInterruptionFilter似乎是要走的路(也是激活None模式的唯一途徑)。但是,用戶必須明確給予權限是一種痛苦...... –

0

谷歌已經從棒棒糖中刪除了靜音模式。這裏is the link to official android issue page

將設備設置爲RINGER_MODE_SILENT會導致設備輸入 新的優先級模式。如果您將其設置爲 爲RINGER_MODE_NORMAL或RINGER_MODE_VIBRATE,則該設備保持優先模式。

您已閱讀更多關於here

+1

令人失望的是,他們這樣做。我希望手機在工作時100%進入靜音模式,現在我必須每天都手動進行此操作? – Dino

+0

不幸的是,但您可以使用振動模式或使用優先模式並設置優先級。你將不得不搜索教程。 –

+0

我剛剛寫了一個應用程序,適用於前棒棒糖,但不是棒棒糖,這是非常令人失望的。 – Dino

0

我通過兩次撥打setRingerMode(AudioManager.RINGER_MODE_SILENT)解決了這個問題,因爲棒棒糖首先將設備置於優先模式而不是靜音模式。

final AudioManager audiomanage = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
    audiomanage.setRingerMode(AudioManager.RINGER_MODE_SILENT); 
    new Thread(new Runnable() { 

     public void run() 
     { 
      try 
      { 
       Thread.sleep(100); 
       audiomanage.setRingerMode(AudioManager.RINGER_MODE_SILENT);    
      } 
      catch (InterruptedException e) 
      { 
       e.printStackTrace(); 
      } 
     } 
    }).start(); 
+0

這是Android 5.0中的一個錯誤,它已在Android 5.1中修復。該代碼僅適用於5.0。 – headuck

相關問題