首页 > 其他分享 >Android动态权限申请

Android动态权限申请

时间:2022-11-13 21:36:29浏览次数:66  
标签:权限 permission 申请 activity Android PackageManager 动态

Android动态权限申请

在Android 6.0后,安卓开发权限的申明就不再只是在AndroidManifest.xml文件中声明了,大多数权限都需要用户的允许。

权限申请

首先和6.0以前一样,在AndroidManifest.xml文件中添加需要的权限,这里以读写权限为例

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

同时,在需要权限的地方或者MainActivity中编写权限申请方法

//    获取权限方法
    public static void getPermissionCamera(Activity activity) {
//      检查权限
        int readPermissionCheck = ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE);
        int writePermissionCheck = ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);

//        检查是否有该权限,有才去申请
//        PackageManager.PERMISSION_GRANTED--->有
//        PackageManager.PERMISSION_DENIED---->无
        if (readPermissionCheck != PackageManager.PERMISSION_GRANTED || writePermissionCheck != PackageManager.PERMISSION_GRANTED) {
//            将这些权限添加到数组中
            String[] permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
//            通过ActivityCompat.requestPermissions()方法申请权限
            ActivityCompat.requestPermissions(
                    activity,
                    permissions,
                    0);
        }
    }

别忘了在onCreate方法中应用它

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getPermissionCamera(this);
    }

动态权限申请就是这么简单,如果想了解的更加详细

(18条消息) Android权限管理及动态申请权限_TheRisingMoon的博客-CSDN博客_android动态申请权限

标签:权限,permission,申请,activity,Android,PackageManager,动态
From: https://www.cnblogs.com/nhgtx/p/16887015.html

相关文章

  • 动态 dp 学习笔记
    好耶!来学新算法了(最近停课了就有时间学算法啦因为CSP-S考了个什么ddp然后我不会(CSP炸了)学了一个晚上加一个上午才学会(我太菜了)嗯嗯其实说起来是个很简单的东西.前......
  • 动态数组
    //不需要数组,指针可以当成数组用#include<stdio.h>#include<stdlib.h>intmain(){ //变量定义 intmax; int*p; inti=0; intnumber; //提示输入最大值......
  • #yyds干货盘点# 动态规划专题:二维前缀和
    1.简述:描述给你一个n行m列的矩阵A,下标从1开始。接下来有q次查询,每次查询输入4个参数x1,y1,x2,y2请输出以(x1,y1)为左上角,(x2,y2)为右下角的子矩阵......
  • android input
    通常,从EditText中获取字符串很简单:   EditTexttext=findViewById(R.id.textName);   Stringname=text.getText().toString();现在要从其中获得数字,就要做以......
  • [笔记] Android开发中的gradle是什么?
    gradle是什么?先看下文档中的介绍  https://docs.gradle.org/current/userguide/what_is_gradle.htmlGradleisanopen-source buildautomationtoolthatisdes......
  • 322. 零钱兑换 ---- 动态规划
    给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。计算并返回可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,......
  • Python开发人脸动态追踪
    Python开发人脸动态追踪导入库文件cv2通过pip命令安装pipinstallopencv-python或者在在设置里面找到+进行opencv-python你还要去下载文件:haarcascade_frontalface_alt.xm......
  • 动态规划(Dynamic Programming)套路学习 ----- 动态规划、备忘录、dp table、状态压缩、
    明确套路:首先,动态规划问题的一般形式就是求最值。而求解动态规划的核心问题是穷举。动态规划三要素。重叠子问题最优子结构状态转移方程⭐ 实战:一、斐波那......
  • 使用JAX构建强化学习agent并借助TensorFlowLite将其部署到Android应用中
    在之前发布文章《一个新TensorFlowLite示例应用:棋盘游戏》中,展示了如何使用TensorFlow和TensorFlowAgents来训练强化学习(RL)agent,使其玩一个简单棋盘游戏“Pl......
  • Android Studio Dolphin 稳定版正式发布
     作者/YuriBlaise,ProductManager,Android为了帮助开发者们更轻松地打造高质量应用,AndroidStudio 团队深入调研,为大家带来了最新稳定版AndroidStudioDolphi......