獲取AudioManager實例:
AudioManager audiomanage = (AudioManager)getAcitivity().getSystemService(Context.AUDIO_SERVICE);? //audiomanager就是我們定義的控制系統(tǒng)聲音的對象
常用方法:
adjustVolume(int direction, int flags)
用來控制手機音量大小,
當傳入的第一個參數(shù)為AudioManager.ADJUST_LOWER 時,可將音量調(diào)小一個單位,
傳入AudioManager.ADJUST_RAISE時,則可以將音量調(diào)大一個單位。
adjustStreamVolume(int streamType, int direction, intflags)
(以步長)調(diào)節(jié)手機音量大小
參數(shù)1:聲音類型,可取為STREAM_VOICE_CALL(通話)、STREAM_SYSTEM(系統(tǒng)聲音)、STREAM_RING(鈴聲)、STREAM_MUSIC(音樂)、STREAM_ALARM(鬧鈴聲)
參數(shù)2:調(diào)整音量的方向,可取ADJUST_LOWER(降低)、ADJUST_RAISE(升高)、ADJUST_SAME
參數(shù)3:可選的標志位
setStreamVolume(int streamType, int index, intflags)
直接設(shè)置音量大小
getMode()
返回當前音頻模式,如 NORMAL(普通), RINGTONE(鈴聲), orIN_CALL(通話)
setMode()
設(shè)置聲音模式,可取值NORMAL(普通), RINGTONE(鈴聲), or IN_CALL(通話)
getRingerMode()
返回當前的鈴聲模式。如RINGER_MODE_NORMAL(普通)、RINGER_MODE_SILENT(靜音)、RINGER_MODE_VIBRATE(震動)
setRingerMode(int ringerMode)
改變鈴聲模式
getStreamVolume(int streamType)
取得當前手機的音量,最大值為7,最小值為0,當為0時,手機自動將模式調(diào)整為“震動模式”。
getStreamMaxVolume(int streamType)
獲得當前手機最大鈴聲。
setStreamMute(int streamType, boolean state)
靜音或不靜音音頻流
設(shè)置指定聲音類型(streamType)是否為靜音。如果state為true,則設(shè)置為靜音;否則,不設(shè)置為靜音。
isWiredHeadsetOn( )
檢測耳機是否插入。如果插入了耳機,就返回true,否則false; 當然,要加個權(quán)限,不然一直是返回false。 uses-permission android:name= android.permission.MODIFY_AUDIO_SETTINGS / 實時檢測耳機插入和拔出: 每當插入和拔出耳機時,系統(tǒng)都會發(fā)送Intent 廣播,這個由看手機打出的Log 得知。 所以,只需要用一個 receiver 把這個廣播 intent (獲取的 action 是:“android.intent.action.HEADSET_PLUG”)截獲就好。
getLastAudibleStreamVolume( )
獲取靜音前的最后音量。