Android系統鈴聲音量監控(鈴聲、音量、靜音、揚聲器)

jopen 10年前發布 | 40K 次閱讀 Android Android開發 移動開發

Android 程序獲取、設置鈴聲和音量 
通過程序獲取android系統手機的鈴聲和音量。同樣,設置鈴聲和音量的方法也很簡單! 

AudioManagermAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
//
通話音量 

int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL); 
int current = mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL); 
Log.d(”VIOCE_CALL”, “max : ” + max + ” current : ” + current); 
//
系統音量 

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM ); 
current = mAudioManager.getStreamVolume( AudioManager.STREAM_SYSTEM ); 
Log.d(”SYSTEM”, “max : ” + max + ” current : ” + current); 
//
鈴聲音量 

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING ); 
current = mAudioManager.getStreamVolume( AudioManager.STREAM_RING ); 
Log.d(”RING”, “max : ” + max + ” current : ” + current); 
//
音樂音量 

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC ); 
current = mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC ); 
Log.d(”MUSIC”, “max : ” + max + ” current : ” + current); 
//
提示聲音音量 

設置音量的方法也很簡單,AudioManager提供了方法: 
public void setStreamVolume(int streamType, int index, int flags) 

streamType為鈴聲類型,例如:AudioManager.STREAM_VOICE_CALLAudioManager.STREAM_SYSTEM等,index為音量大小

falgs為標志位。

 

 

設置振動:
mVibrator = (Vibrator)mContext.getSystemService(Service.VIBRATOR_SERVICE);   
                long[] pattern = {150,100}; // OFF/ON/OFF/ON...  
               mVibrator.vibrate(pattern, -1);

靜音:
設置系統聲音為0就行

 

//通話時設置靜音

System.out.println("isMicrophoneMute =" +audioManager.isMicrophoneMute());
    audioManager.setMicrophoneMute(!audioManager.isMicrophoneMute());

 

//通話時設置免提

System.out.println("isSpeakerphoneOn =" +audioManager.isSpeakerphoneOn());
    audioManager.setSpeakerphoneOn(!audioManager.isSpeakerphoneOn());

//別忘了修改的權限<uses-permissionandroid:name="android.permission.MODIFY_AUDIO_SETTINGS"/>



max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_ALARM ); 
current = mAudioManager.getStreamVolume( AudioManager.STREAM_ALARM ); 
Log.d(”ALARM”, “max : ” + max + ” current : ” + current);

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!