android錄音權(quán)限提示體驗(yàn),自認(rèn)比較優(yōu)雅的解決方法!

場(chǎng)景:項(xiàng)目仿照github上的一個(gè)ChatDemo( https://github.com/Maxi-Mao/ChatDemo ,給出鏈接感謝作者的開(kāi)源代碼對(duì)我項(xiàng)目的幫助!)中的代碼實(shí)現(xiàn)錄音功能,昨晚,發(fā)現(xiàn)項(xiàng)目中的錄音功能在首次使用時(shí)會(huì)彈出提示,提示用戶(hù)是否開(kāi)啟錄音權(quán)限.隨后點(diǎn)擊開(kāi)啟后,馬上就會(huì)提示錄音失敗,然后再錄音也會(huì)失敗!直到幾次后才會(huì)成功!如果直接點(diǎn)擊拒絕授予權(quán)限,則項(xiàng)目會(huì)直接崩潰.
分析:可能是由于點(diǎn)擊錄音的時(shí)候,沒(méi)有權(quán)限,導(dǎo)致android系統(tǒng)彈出提示窗,而在彈窗的同時(shí),錄音并沒(méi)有停止.而且錄音前缺少了權(quán)限的判斷才會(huì)出現(xiàn)上述問(wèn)題.
最后和同事嘗試了解決后,認(rèn)為解決方法還可以,決定分享給大家.
思路:在點(diǎn)擊錄音彈出權(quán)限彈窗前,先判斷是否開(kāi)啟錄音權(quán)限.如果沒(méi)有開(kāi)啟錄音權(quán)限,就開(kāi)啟一段虛擬(假錄音),這時(shí)就會(huì)彈出權(quán)限提示了.而真的錄音又沒(méi)有被觸發(fā),只有有權(quán)限后真的錄音才會(huì)被觸發(fā).這樣就完美的解決了以上問(wèn)題.
1)首先,定義一個(gè)返回boolean值得方法,判斷是否已經(jīng)開(kāi)啟錄音權(quán)限.

 private  boolean voicePermission(){
        return (PackageManager.PERMISSION_GRANTED ==   ContextCompat.
                checkSelfPermission(MyApplication.appContext, android.Manifest.permission.RECORD_AUDIO));
    }

2)然后再開(kāi)始點(diǎn)擊錄音的時(shí)候?qū)懭?/p>

 if (!voicePermission()){//沒(méi)有權(quán)限,自己寫(xiě)一段假的錄音代碼,這段錄音代碼其實(shí)無(wú)效.
                    MediaRecorder recorder = new MediaRecorder();
                    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                    recorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
                    recorder.setAudioChannels(1);
                    recorder.setAudioSamplingRate(8000);
                    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
                    recorder.setOutputFile(DataURI.CreateTempFileName(""));//這里給個(gè)假的地址,因?yàn)檫@段錄音是無(wú)效的.
                    try {
                        recorder.prepare();
                        recorder.start();//要開(kāi)始錄音時(shí),這里就會(huì)彈出提示框了,如果不給權(quán)限.我們有異常處理,而且下次想錄音時(shí) 還是會(huì)有此提示.
                        recorder.stop();
                        recorder.release();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    return false;//這里是因?yàn)橥鈱訉邮且粋€(gè)長(zhǎng)按事件,返回false表示處理過(guò)了(OnLongClickListener).
                }

......//上述代碼后 就是項(xiàng)目中真正的錄音代碼了.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末业簿,一起剝皮案震驚了整個(gè)濱河市根盒,隨后出現(xiàn)的幾起案子贪染,更是在濱河造成了極大的恐慌,老刑警劉巖蛉迹,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異放妈,居然都是意外死亡北救,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)芜抒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)珍策,“玉大人,你說(shuō)我怎么就攤上這事挽绩√乓迹” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵唉堪,是天一觀的道長(zhǎng)模聋。 經(jīng)常有香客問(wèn)我,道長(zhǎng)唠亚,這世上最難降的妖魔是什么链方? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮灶搜,結(jié)果婚禮上祟蚀,老公的妹妹穿的比我還像新娘。我一直安慰自己割卖,他們只是感情好前酿,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著鹏溯,像睡著了一般罢维。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丙挽,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天肺孵,我揣著相機(jī)與錄音,去河邊找鬼颜阐。 笑死平窘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的凳怨。 我是一名探鬼主播瑰艘,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了磅叛?” 一聲冷哼從身側(cè)響起屑咳,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎弊琴,沒(méi)想到半個(gè)月后兆龙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡敲董,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年紫皇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腋寨。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡聪铺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出萄窜,到底是詐尸還是另有隱情铃剔,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布查刻,位于F島的核電站键兜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏穗泵。R本人自食惡果不足惜普气,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望佃延。 院中可真熱鬧现诀,春花似錦、人聲如沸履肃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)尺棋。三九已至封锉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陡鹃,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工抖坪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萍鲸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓擦俐,卻偏偏與公主長(zhǎng)得像脊阴,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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