2016-01-31 104 views
1

我想獲得我的Android應用程序的一些功能工作,但是,AudioManager似乎並沒有讓我的手機沉默。不管我做什麼。Android AudioManager不沉默電話

這是代碼,我現在所擁有的:

 try { 
     AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
     audioManager.setRingerMode(0); 
    } catch (Exception ex) { 
     Log.e("Error", ex.getMessage()); 
    } 

我已經嘗試了這些解決方案:

Android audiomanager - I want to set silent mode, but applied the priority mode (lollipop)

Silence Android Phone in Java

和一對夫婦更這表明我應該嘗試使用「setStreamVolume」屬性。但是這也沒有解決問題,因爲那時我的手機在接到文字或電話時仍會振動。

這些都是在我的清單中的權限:

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 

我已經關閉了該錯誤消息爲「write_secure_settings」,因爲這似乎是一個系統的應用程序設置。

我目前用於測試的手機是我的運行Android 5.1.1的Sony Z5 Compact。 還沒有嘗試過運行4.4.2的舊銀河s4上的代碼。

有關下一步嘗試的建議。

+0

這是奇怪的是,setRingerMode(AudioManager.RINGER_MODE_SILENT)已經不適合你的工作。 –

回答

0

您是否嘗試過添加此代碼?

int streams = AudioManager.STREAM_ALARM|AudioManager.STREAM_DTMF|AudioManager.STREAM_MUSIC| 
       AudioManager.STREAM_NOTIFICATION| 
       AudioManager.STREAM_RING|AudioManager.STREAM_SYSTEM| 
       AudioManager.STREAM_VOICE_CALL; 
audioManager.AdjustVolume(streams,ADJUST_MUTE); 

根據該標誌,可以streams..in這段代碼具體靜音,靜音我他們都

+0

不幸的是,也沒有工作。也許這只是索尼Android外殼中的一個bug。雖然我找不到任何指向此點的線索。 – user