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;
               }
           }
       }
   }

效果图

Android申请相机权限和读写权限实例

Android申请相机权限和读写权限实例

来源: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
  • asp之家 网络编程 m.aspxhome.com