android 照片 权限管理,Android6.0拍照,读取照片信息所用到的权限

news/2024/7/7 15:24:10

在拍照,读取相册信息时应该加入权限判断,否则在没有相应权限时会直接出错的. 相关代码如下:

//判断是否有读写手机存储的权限

if (ContextCompat.checkSelfPermission(this,

Manifest.permission.WRITE_EXTERNAL_STORAGE)

!= PackageManager.PERMISSION_GRANTED) {

//权限还没有授予,需要在这里写申请权限的代码

/*

第二个参数是一个字符串数组,里面是你需要申请的权限。既然是一个数组,那么就说明你一次可以申请多个权限。

最后一个参数是一个整型常量,用于标志你这次申请的权限,该常量在onRequestPermissionsResult(…)方法中会用到。

*/

ActivityCompat.requestPermissions(this,

new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, Util.MY_PERMISSIONS_REQUEST_WRITE);

} else {

//如果有应该进行怎样的操作

}

然后在在onRequestPermissionsResult(…)方法中进行处理

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

//判断是拍照的权限

if (requestCode == Util.MY_PERMISSIONS_REQUEST_CALL_PHOTO) {

if (grantResults[0] == PackageManager.PERMISSION_GRANTED)

{

//当允许时进行的操作

} else {

//还是不允许时可以跳转到应用的权限管理界面修改权限

//跳转到该应用的设置界面,让用户手动授权

Intent localIntent = new Intent();

localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

if (Build.VERSION.SDK_INT >= 9) {

localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");

localIntent.setData(Uri.fromParts("package", getPackageName(), null));

} else if (Build.VERSION.SDK_INT <= 8) {

localIntent.setAction(Intent.ACTION_VIEW);

localIntent.setClassName("com.android.settings","com.android.settings.InstalledAppDetails");

localIntent.putExtra("com.android.settings.ApplicationPkgName", context.getPackageName());

}

startActivity(localIntent);

}

}

//判断是读写手机存储的权限

if (requestCode == Util.MY_PERMISSIONS_REQUEST_WRITE) {

if (grantResults[0] != PackageManager.PERMISSION_GRANTED)

{

//跳转到该应用的设置界面,让用户手动授权

Intent localIntent = new Intent();

localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

if (Build.VERSION.SDK_INT >= 9) {

localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");

localIntent.setData(Uri.fromParts("package", getPackageName(), null));

} else if (Build.VERSION.SDK_INT <= 8) {

localIntent.setAction(Intent.ACTION_VIEW);

localIntent.setClassName("com.android.settings","com.android.settings.InstalledAppDetails");

localIntent.putExtra("com.android.settings.ApplicationPkgName", context.getPackageName());

}

startActivity(localIntent);

} else {

//允许时应该进行的操作

}

}

}

同理拍照的权限判断也是一样的

//判断是否有拍照的权限

if (ContextCompat.checkSelfPermission(this,

Manifest.permission.CAMERA)

!= PackageManager.PERMISSION_GRANTED) {

//权限还没有授予,需要在这里写申请权限的代码

/*

第二个参数是一个字符串数组,里面是你需要申请的权限。既然是一个数组,那么就说明你一次可以申请多个权限。

最后一个参数是一个整型常量,用于标志你这次申请的权限,该常量在onRequestPermissionsResult(…)方法中会用到。

*/

ActivityCompat.requestPermissions(this,

new String[]{Manifest.permission.CAMERA}, Util.MY_PERMISSIONS_REQUEST_WRITE);

} else {

//如果权限允许应当进行的下一步操作

}


http://www.niftyadmin.cn/n/647657.html

相关文章

Java中函数的递归调用

说到递归&#xff0c;java中的递归和C语言中也是很相似的&#xff0c;在Java中&#xff0c;递归其实就是利用了栈的先进后出的机制来描述的。 public class HelloWorld {public static void main(String[] args){// Scanner s new Scanner(System.in);// System.out.println(&…

c语言条件编译的作用,C语言中条件编译的作用

条件编译属于三种宏定义中的一种&#xff0c;条件指示符的最主要目的是防止头文件的重复包含和编译&#xff0c;例如:一个c文件包含同一个h文件多次&#xff0c;如果不加#ifndef宏定义&#xff0c;会出现变量重复定义的错误条件编译常用的有四个预处理命令&#xff1a;#if、#el…

android 7.1.1三星官方,三星Galaxy S7将直升Android7.1.1 时间定为明年初

【TechWeb报道】三星在经过Note 7的爆炸门事件后&#xff0c;越发重视Galaxy S7系列的后续发展&#xff0c;不仅在早前推出了新配色珊瑚蓝&#xff0c;还于昨天在国内特供了128GB矅岩黑Galaxy S7 Edge&#xff0c;而现在又有消息传出&#xff0c;三星Galaxy S7以及S7 Edge已经开…

sex在c语言中,2003年4月全国高等教育自学考试计算机软件基础(一)试题

}printf (“x%d&#xff0c;y%d&#xff0c;z%d”&#xff0c;x&#xff0c;y&#xff0c;z)&#xff1b;}A.x4&#xff0c;y4&#xff0c;z1 B.x5&#xff0c;y4&#xff0c;z1C.x5&#xff0c;y4&#xff0c;z2 D.x5&#xff0c;y5&#xff0c;z119.C语言中&#xff0c;下列定…

c语言 函数教学反思,二次函数图象之教学反思

问题是利用抛物线的对称性解决三角形的周长最小的题目&#xff0c;本题让学生充分合作交流最后让学生在自主探索中获取新的知识。二次函数图象之教学反思2017-12-20 20:09:42 | #1楼回目录这堂课最大 的却失是教学手段单一&#xff0c;浪费了时间&#xff0c;降低了课堂效率&am…

android 图片 居中 手势缩放 设置缩放比例,ImageView通过matrix实现手势缩放

关于ImageView的手势缩放&#xff0c;有很多种方法&#xff0c;绝大多数开源自定义缩放都是修改了ondraw函数来实现的。但是ImageView本身有scaleType属性&#xff0c;通过设置android:scaleType"matrix" 可以用很少的代码就实现缩放功能。缩放的优点是实现起来简单&…

ngScreening - angular 筛选器

ngScreening v0.4.9 angular筛选器组件通过控制器定义数据&#xff0c;screening帮你完成数据的渲染、监听、过滤等功能。 DEMO http://moerj.github.io/ngScre... Getting Started npm install ng-screening require(angular);//在使用前&#xff0c;你需要引入 angularrequir…

姓名字典顺序排序C语言,求教通讯录管理系统中的姓名按字典顺序排列

回复 8楼 rjsp#include#include#includeusing namespace std;struct information{string name;int number;string address;};int main(){cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<c…