Android音量控制-AudioManager與來電振動

AudioManager是Android系統(tǒng)級服務,通過AudioManager可以管理響鈴揣炕,通知,鬧鐘东跪,音樂畸陡,通話,系統(tǒng)等音頻流的音量大小虽填。

音量調(diào)節(jié)

常用的音頻流類型如下:

  • STREAM_RING:響鈴
  • STREAM_MUSIC:音樂
  • STREAM_ALARM:鬧鐘
  • STREAM_VOICE_CALL:通話
  • STREAM_SYSTEM:系統(tǒng)(撥號鍵盤提示音丁恭、觸摸提示音、鎖屏提示音)
  • STREAM_NOTIFIACTION:通知

一般情況下斋日,如果需要更改某一個音頻流音量大小牲览,可以通過如下的方式:

//獲得一個AudioManager的實例
final AudioManager audioManager = mContext.getSystemService(Context.ALARM_SERVICE);

//獲得鬧鐘音頻流的最大音量(設(shè)置的音量只能小于最大音量)
final int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);

//更改鬧鐘音量
audioManager.setStreamVolume(AudioManager.STREAM_ALARM,maxVolume/2,AudioManager.FLAG_PLAY_SOUND);

需要注意的是如果音頻流是固定的,那么調(diào)用上列方法也是無法修改音量的恶守〉谙祝可以調(diào)用 AudioManager 實例的 isVolumeFixed() 方法進行判斷。

同時兔港,setStreamVolume方法還支持一些特定的FLAG值庸毫,使用 | 將不同的模式組合,在設(shè)置音量的時候觸發(fā)押框,例如:AudioManager.FLAG_VIBRATE|AudioManager.FLAG_PLAY_SOUND設(shè)置時會振動和播放響應的音頻流預覽岔绸。更多的FLAG可以在 AudioManager 類里面查看理逊。

此外橡伞,還有幾個增減音量的方法

  • adjustVolume(int direction, intflags):根據(jù)direction(AudioManager.ADJUST_LOWER , AudioManager.ADJUST_RAISE )增加盒揉,減少優(yōu)先級高的音頻流的音量。
    ps.如果在打電話兑徘,此時通話優(yōu)先級最高刚盈,如果在聽歌,此時音樂流的優(yōu)先級最高
  • adjustStreamVolume(int streamType, int direction, intflags):根據(jù)direction值增加挂脑,減少相應的音頻流的音量藕漱。

響鈴模式

STREAM_RING 支持響鈴模式,通過 AudioManagersetRingerMode(int mode)方法可以設(shè)置響鈴模式崭闲, 一共有 RINGER_MODE_SILENT,RINGER_MODE_VIBRATE,RINGER_MODE_NORMAL,RINGER_MODE_MAX 四種模式肋联。

不同響鈴模式作用如下:

  • Silent(靜默):靜音,并且不會振動刁俭。
  • Vibrate(振動):靜音橄仍,振動
  • Normal(普通):響鈴,可能會振動(啟用來電振動選項才會振動)

來電振動

AudioManager中并沒有提供來電振動的方法牍戚,但是在系統(tǒng)的音量設(shè)置界面可以看到有這個選項侮繁。


Android 5.1.0系統(tǒng)截圖
Android 5.1.0系統(tǒng)截圖

通過分析Android中的自帶Setting App源代碼,我找到了設(shè)置此選項的方法:

  • Settings.System.putInt(getContentResolver(), Settings.System.VIBRATE_WHEN_RINGING, val ? 1 : 0)
  • Settings.System.getInt(getContentResolver(), Settings.System.VIBRATE_WHEN_RINGING, 0)

可以看到,在 com.android.settings.notification.NotificationSettings 類中如孝,是通過調(diào)用 Settings.System.putInt() 方法來設(shè)置此選項值宪哩,通過 Settings.System.getInt() 來得到此選項的值。

android.provider.Settings 類中第晰,可以看到 Settings.System.VIBRATE_WHEN_RINGING 的值為 vibrate_when_ringing 锁孟,是一個字符串類型的靜態(tài)常量,但是在代碼中是不能訪問到的但荤。

結(jié)語

通過以上的方式罗岖,基本上就可以自己擼一個情景模式的App出來了 :)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市腹躁,隨后出現(xiàn)的幾起案子桑包,更是在濱河造成了極大的恐慌,老刑警劉巖纺非,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哑了,死亡現(xiàn)場離奇詭異,居然都是意外死亡烧颖,警方通過查閱死者的電腦和手機弱左,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炕淮,“玉大人拆火,你說我怎么就攤上這事。” “怎么了们镜?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵币叹,是天一觀的道長。 經(jīng)常有香客問我模狭,道長颈抚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任嚼鹉,我火速辦了婚禮贩汉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锚赤。我一直安慰自己匹舞,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布线脚。 她就那樣靜靜地躺著策菜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪酒贬。 梳的紋絲不亂的頭發(fā)上又憨,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音锭吨,去河邊找鬼蠢莺。 笑死,一個胖子當著我的面吹牛零如,可吹牛的內(nèi)容都是我干的躏将。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼考蕾,長吁一口氣:“原來是場噩夢啊……” “哼祸憋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肖卧,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蚯窥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后塞帐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拦赠,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年葵姥,在試婚紗的時候發(fā)現(xiàn)自己被綠了荷鼠。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡榔幸,死狀恐怖允乐,靈堂內(nèi)的尸體忽然破棺而出矮嫉,到底是詐尸還是另有隱情,我是刑警寧澤牍疏,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布敞临,位于F島的核電站,受9級特大地震影響麸澜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奏黑,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一炊邦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧熟史,春花似錦馁害、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至限寞,卻和暖如春忍啸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背履植。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工计雌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人玫霎。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓凿滤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親庶近。 傳聞我的和親對象是個殘疾皇子翁脆,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容