使用第三方库时,一定要注意与自己业务逻辑是否匹配。
一、起因
Andriod 6.0开始android使用了动态申请权限,系统提供的方法不够直观,所以寻找一些封装好,好用的第三方库。项目一直是使用Acp库来进行权限申请,可是作者不维护了,存在的崩溃也不解决了。只能另辟蹊径,找来找去,发现PermissionX的口碑不错。同时我也是学《第一行代码》入行android。很愉快地决定了。
二、问题
使用中,就碰到前面图片中的问题。当一个页面中,同时发起两次授权,那么第二个申请就直接返回成功。猜测,同时发起N个请求,那么除了第一个,其他的都会直接返回成功。
这个作者回复是说是非法操作。 然后果断的修改了业务逻辑。(不然就没有办法了)
三、无解
最近后碰到了一个问题,在vivo的Android7上,打开应用后,就会去申请
android.permission.READ_PHONE_STATE
的权限。而此时使用PermissionX进行申请权限,那么就会直接进入成功的回调。其实这个时候授权的弹窗还停留在READ_PHONE_STATE。
导致不能够进行正常的权限申请。
四、解决方法
在进入应用的首页,采用andriod系统的方式进行授权的申请。
此时想到PermissionX作者回复的非法,我觉得是不对的。采用android系统提供的动态权限申请方法,不存在授权窗口还未提示,就直接回调成功。
// END 合适自己的才是最好的。
网友评论