记录一个动态权限的问题

过去很长的一段时间里面,我一直坚持使用UtilCode这个库,里面继承了非常多的开发中常用的方法,省去了自己自行从别的地方捞取以前的代码。

 //utils
 implementation 'com.blankj:utilcode:1.24.2'

动态权限我用的也是其中的方法,

 PermissionUtils.permission(PermissionConstants.MICROPHONE).callback(new PermissionUtils.SimpleCallback() {
                    @Override
                    public void onGranted() {
                      //业务代码
                    }

                    @Override
                    public void onDenied() {
                        ToastUtils.showShort("请设置麦克风权限");
                    }
                }).request();

蛮简便的写法,但是在我测试的时候出现了问题。以前都能使用的代码莫名其妙就出现了问题,排查了很久之后找到了原因。测试机被人换了,换成了vivo,像是国内这些深度定制的系统有时候真的让人非常头疼,不能说故作聪明,但是真的造成了很大的困扰,具体原因是什么呢?正常手机的系统在我们申请权限时候会弹出dialog让用户选择,但是这个vivo系统没有,而是一段时间后才弹出来,这就非常难受了,因为没有弹窗并直接走onGranted()导致直接执行业务代码,但是业务代码涉及到一些时效性比较高的操作,矛盾就出来了,气的想打人。。。
后来发现,vivo系统只有在onGranted()方法中立即使用到相关权限,才能立即弹出,换句话说就是只有在真正使用的时候才弹出,那我只好在业务代码之前加入这些了,

 MediaRecorder mRecorder = new MediaRecorder();
 mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
 mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
 mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
 mRecorder.release();

大概就是这么一个思路,如果有更好的方法请告之,感激不尽。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值