---------------------------------防偷窥
-------------------
今天来继续(水)更新帖子事情是这样的=>今天在搞论坛时用了androidx库,然后发生了悲剧,当我用 java.io.File.createNewFile 时程序崩溃了
不过因为我有异常处理类所以没有任何问题,关于异常处理类可以看看我的这期教程#[Android]处理所有java类错误教程#在我后面看报错信息时果然出现了Permission
这个错误
这时我想起了targetSdkVersion设置成了28,我也没办法,于是开始解决运行时权限问题
________________正片开始_________________
首先有两个解决办法:
一是自己用 CheckPermission(重复进行请求) ,但我估计这样写就累死了
所以我们来讲讲方案2:
自己写一个AutoString接口(用于放需要申请的权限),Permission类(用于一次申请所有权限的类)
话不多说,开始写代码-![[滑稽]](/public/face/f25.png)
![[OK]](/public/face/f50.png)
现在自己的运行类中添加一个文件夹,我命名为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时调用的最后在主活动里调用即可(如图)还是那句话,源码会发评论区里![[滑稽]](/public/face/f25.png)
下期见





举报 0