1. 程式人生 > >【Android】5.0錄音許可權處理時遇到的問題

【Android】5.0錄音許可權處理時遇到的問題

公司專案有這樣一個功能:按住button開始錄音,同時彈出一個提示錄音進度的dialog,鬆開button時錄音結束。

但是發現在5.0中第一次用時會有問題,按住button時系統會彈出一個許可權申請的提示框。點選允許後,button的狀態還是會保持在MotionEvent.ACTION_DOWN狀態,同時錄音進度dialog也出現,MediaRecorder也處於錄音狀態中,而這些問題出現的同時,我手指已經離開螢幕,也就是說,button沒有處於MotionEvent.ACTION_UP狀態,如果此時有其他操作時很容易引起崩潰。

後來經過對event.getAction()值的監聽發現,當點選系統許可權申請提示框的允許或拒絕時,button的狀態會走進MotionEvent.ACTION_CANCEL裡,而我沒有在這個狀態中做任何處理,就會導致手離開螢幕了卻還在錄音中。

所以只要在MotionEvent.ACTION_CANCEL裡將button的狀態恢復原狀,將dialog.dismiss掉,並取消錄音就行了。接著該幹啥就幹啥了。