【Android】解决运行时权限请求问题

综合技术   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2020-10-7

---------------------------------防偷窥[滑稽]-------------------
今天来继续(水)更新帖子事情是这样的=>今天在搞论坛时用了androidx库,然后发生了悲剧,当我用 java.io.File.createNewFile 时程序崩溃了

不过因为我有异常处理类所以没有任何问题,关于异常处理类可以看看我的这期教程#[Android]处理所有java类错误教程#在我后面看报错信息时果然出现了Permission[滑稽]这个错误

这时我想起了targetSdkVersion设置成了28,我也没办法,于是开始解决运行时权限问题

________________正片开始_________________
首先有两个解决办法:

一是自己用 CheckPermission(重复进行请求) ,但我估计这样写就累死了

所以我们来讲讲方案2:
自己写一个AutoString接口(用于放需要申请的权限),Permission类(用于一次申请所有权限的类)

话不多说,开始写代码-[滑稽][OK]

现在自己的运行类中添加一个文件夹,我命名为tools,

在里面先添加AutoString接口AutoString接口的代码:定义一个String数组,里面存放申请的名称,例如:String[] Permission = new String[]{...}

这里我是一次全部申请了然后在这个目录下新建一个Permission类,这个类稍微稍微有点复杂,但我们一步步来

Permission类:
/***一些需要的东西*/
Activity context;String[] p;
/***初始化context*用于其它地方创建对话框,提示等*/
public Permission (Activity context){
this.context = context;
}
/***非常重要,用于申请权限*/
public void Call(String[] str){
ArrayList perm = new ArrayList();
for(int a = 0 ;a 0&&perm.get(0)!=null){
p = new String[perm.size()];
for(int a = 0 ;a = Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(context, p,123);
}else{
show();
}
}
}

大概思路:遍历str权限的字符串数组,申请权限,如果同意就放入ArrayList集合里,这样就不需要重复申请剩下的就是写CheckPermission方法了,用于创建权限提示对话框,由于字数限制贴图片,另一个show方法是targetSdkVersion版本小于23时调用的最后在主活动里调用即可(如图)还是那句话,源码会发评论区里[滑稽][OK]下期见

沙发
answer29 2020-10-7
没人,一楼[滑稽][滑稽][滑稽]
板凳
answer29 2020-10-7
我觉得你先发下原码[滑稽][大拇指][大拇指]
地板
answer29 2020-10-7
我有用[滑稽][大拇指]
5楼
answer29 2020-10-7
真好[滑稽][大拇指][大拇指]
6楼
心诚 2020-10-7
这类教程下次记得发在技术分享板块
7楼
小晗Dev 2020-10-7
没有权限(凯币)[滑稽]
8楼
sukut 2020-10-8
这是权限在 不是在 androidmanifet.xml 里没有 吗
用软件来权限??
太不容易了,感谢大佬分享!
10楼
昵称542001 2020-10-9
看不懂我滴妈呀

评论

登录后才可发表内容
  • 主题

    23

  • 帖子

    102

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.1036s Mem:2158Kb