Android申请相机权限和读写权限实例
作者:井井帆 时间:2023-08-21 18:52:40
开发一个相机应用,需要申请三个权限:相机、读文件、写文件。
1、在AndroidManifest.xml中添加
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2、新建一个Permission类
public class Permission {
public static final int REQUEST_CODE = 5;
//定义三个权限
private static final String[] permission = new String[]{
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
};
//每个权限是否已授
public static boolean isPermissionGranted(Activity activity){
if(Build.VERSION.SDK_INT >= 23){
for(int i = 0; i < permission.length;i++) {
int checkPermission = ContextCompat.checkSelfPermission(activity,permission[i]);
/***
* checkPermission返回两个值
* 有权限: PackageManager.PERMISSION_GRANTED
* 无权限: PackageManager.PERMISSION_DENIED
*/
if(checkPermission != PackageManager.PERMISSION_GRANTED){
return false;
}
}
return true;
}else{
return true;
}
}
public static boolean checkPermission(Activity activity){
if(isPermissionGranted(activity)) {
return true;
} else {
//如果没有设置过权限许可,则弹出系统的授权窗口
ActivityCompat.requestPermissions(activity,permission,REQUEST_CODE);
return false;
}
}
}
3、在MainActivity中加入授权操作
@Override
protected void onStart() {
super.onStart();
Permission.checkPermission(this);
}
@Override
protected void onResume() {
super.onResume();
if(Permission.isPermissionGranted(this)) {
Log.i("PERMISSION","请求权限成功");
}
}
初步授权成功
4、在MainActivity中处理授权失败结果,拒绝授权则退出应用
@Override
public void onRequestPermissionsResult(
int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == Permission.REQUEST_CODE) {
for (int grantResult : grantResults) {
if (grantResult != PackageManager.PERMISSION_GRANTED) {
Log.e("Permission","授权失败!");
// 授权失败,退出应用
this.finish();
return;
}
}
}
}
效果图
来源:https://blog.csdn.net/jignjingfan/article/details/122857224
标签:Android,申请,相机,权限
0
投稿
猜你喜欢
10个顶级Python实用库推荐
2023-08-27 17:41:46
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2023-11-23 16:32:45
python字典基本操作实例分析
2023-12-04 09:25:22
MySQL深分页问题原理与三种解决方案
2024-01-27 14:12:34
简单谈谈Python中的反转字符串问题
2022-02-24 11:55:07
掀起抛弃IE6的高潮吧
2009-02-26 12:44:00
如何使用Python优雅的合并两个字典Dict
2023-10-12 22:50:36
Express结合Webpack的全栈自动刷新
2024-05-09 10:34:13
tensorflow常用函数API介绍
2022-10-18 17:49:54
分步骤教你用python一步步提取PPT中的图片
2023-07-01 19:58:22
insert select与select into 的用法使用说明
2012-01-05 18:47:58
基于javascript如何传递特殊字符
2023-09-06 04:14:23
python获取本机外网ip的方法
2022-06-24 01:57:16
JS实现键值对遍历json数组功能示例
2024-04-10 10:52:40
Python 调用DLL操作抄表机
2021-10-15 08:03:39
Django 简单实现分页与搜索功能的示例代码
2023-12-26 01:40:16
Python中pip安装非PyPI官网第三方库的方法
2021-01-20 15:51:18
在python中如何建立一个自己的包
2022-12-27 12:42:25
Python字符串类型及格式化问题
2023-12-30 21:49:46
Python实现选择排序
2021-06-17 03:23:40