Android 6.0 之前的录音权限问题

  • Android,权限,录音
  • 2018.08.13

Android 6.0 提出了新的权限管理机制。而在 6.0 之前,各个厂商也搞了一些自己的权限管理机制,五花八门。最后我们在适配 6.0 的时候,确实花了很多精力,但是总是还有很多问题一直没有解决。

Android 6.0 提出了新的权限管理机制。而在 6.0 之前,各个厂商也搞了一些自己的权限管理机制,五花八门。最后我们在适配 6.0 的时候,确实花了很多精力,但是总是还有很多问题一直没有解决。

在 6.0 之前,录音比较常见的问题就是,系统会在调用 MediaRecorder.start() 方法或者 MediaRecorder.prepare() 方法的时候,会弹出一个系统的授权提示框。这个提示框会挂起 start() 方法和 prepare() 方法,直到用户做出了选择后,才会回来继续往下执行。而如果你从调用 start() 方法或者 prepare() 方法就开始计时,那么你肯定会得到一个错误的时间的。或者你是通过按住按钮开始录音,松开结束录音的话,弹出的对话框也会打乱你的事件分发。

联想到之前 OPPO 手机弹出摄像头的事情。其实也是类似的问题,百度为了检测权限,调用了 Carame.start() 方法,这个时候,OPPO 的摄像头伸了出来,然后再缩回去。根据之前的经验,如果调用 start() 方法捕获到异常的话,就是没有获得权限。在一般手机上,可以通过这样的办法判断是否有权限。但是刚好那个 OPPO 手机的摄像头是伸缩的。结果大家都知道了。

相关文章

- EOF -

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
转载请注明:文章转载自 Binkery 技术博客 [https://binkery.com]
本文标题: Android 6.0 之前的录音权限问题
本文地址: https://binkery.com/archives/107001.html