服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android申请相机权限和读写权限实例

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

2022-09-23 16:07井井帆 Android

大家好,本篇文章主要讲的是Android申请相机权限和读写权限实例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

开发一个相机应用,需要申请三个权限:相机、读文件、写文件。

1、在AndroidManifest.xml中添加

?
1
2
3
<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类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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中加入授权操作

?
1
2
3
4
5
6
7
8
9
10
11
12
13
@Override
    protected void onStart() {
        super.onStart();
        Permission.checkPermission(this);
    }
 
    @Override
    protected void onResume() {
        super.onResume();
        if(Permission.isPermissionGranted(this)) {
            Log.i("PERMISSION","请求权限成功");
        }
    }

初步授权成功

4、在MainActivity中处理授权失败结果,拒绝授权则退出应用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@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申请相机权限和读写权限实例

到此这篇关于Android申请相机权限和读写权限实例的文章就介绍到这了,更多相关Android申请相机权限内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/jignjingfan/article/details/122857224

延伸 · 阅读

精彩推荐
  • Android解析android中ProgressBar的用法

    解析android中ProgressBar的用法

    本篇文章是对android中ProgressBar的使用进行了详细的分析介绍,需要的朋友参考下...

    Android开发网9722021-01-29
  • AndroidAndroid ProgressBar进度条使用详解

    Android ProgressBar进度条使用详解

    ProgressBar进度条,分为旋转进度条和水平进度条,进度条的样式根据需要自定义,这篇文章主要介绍了Android ProgressBar进度条使用方法,感兴趣的小伙伴们可...

    Android开发网9682021-05-27
  • AndroidAndroid自定义View实现拖拽效果

    Android自定义View实现拖拽效果

    这篇文章主要为大家详细介绍了Android自定义View实现拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    zpf_7422022-08-24
  • AndroidAndroid 再按一次返回键退出程序实现思路

    Android 再按一次返回键退出程序实现思路

    用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一...

    Android开发网9932021-01-04
  • AndroidAndroid 通过onDraw实现在View中绘图操作的示例

    Android 通过onDraw实现在View中绘图操作的示例

    以下是对Android通过onDraw实现在View中绘图操作的示例代码进行了详细的分析介绍,需要的朋友可以过来参考下...

    Android开发网8072021-02-04
  • AndroidAndroid布局之TableLayout表格布局

    Android布局之TableLayout表格布局

    Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件。当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子...

    会飞的一只狼11182021-04-28
  • AndroidAndroid实现Activity界面切换添加动画特效的方法

    Android实现Activity界面切换添加动画特效的方法

    这篇文章主要介绍了Android实现Activity界面切换添加动画特效的方法,非常实用的技巧,需要的朋友可以参考下...

    Android开发网12322021-03-08
  • AndroidAndroid接入微信支付的方法

    Android接入微信支付的方法

    这篇文章主要介绍了Android接入微信支付的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    大校啊12212021-05-06