当前位置: 首页 > news >正文

Android获取系统读取权限

第一步在Androidifest.xml文件中加上授权语句

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

并且在Application标签下添加 android:requestLegacyExternalStorage=“true”

 android:requestLegacyExternalStorage="true"

如果不加这条语句,会报错:open failed: EACCES (Permission denied)
详情见如下图:
在这里插入图片描述

第二步在Activity中添加动态授权语句

详细代码如下:


import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;import android.Manifest;
import android.annotation.SuppressLint;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;public class MainActivity extends AppCompatActivity {//请求码private static String[] PERMISSIONS_STORAGE = {Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE};//请求状态码private static int REQUEST_PERMISSION_CODE = 1;@SuppressLint("MissingInflatedId")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/*获取读写权限*/if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_PERMISSION_CODE);}}}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);if (requestCode == REQUEST_PERMISSION_CODE) {for (int i = 0; i < permissions.length; i++) {Log.i("MainActivity", "申请的权限为:" + permissions[i] + ",申请结果:" + grantResults[i]);}}}
}

在这里插入图片描述

http://www.lryc.cn/news/168552.html

相关文章:

  • 输入学生成绩(最多不超过40),输入为负值时表示输入结束,统计成绩高于平均成绩的学生人数
  • 【力扣周赛】第 363 场周赛(完全平方数和质因数分解)
  • RocketMQ的介绍和环境搭建
  • 【web开发】7、Django(2)
  • Prometheus+Grafana可视化监控【Nginx状态】
  • R 语言的安装教程
  • uniapp-提现功能(demo)
  • Spring 篇
  • three.js简单3D图形的使用
  • spark withColumn的使用(笔记)
  • PTA:7-1 线性表的合并
  • Spring 的创建和日志框架的整合
  • 11-集合和学生管理系统
  • C语言进阶指针(3) ——qsort的实现
  • Rust源码分析——Rc 和 Weak 源码详解
  • 【网络编程】深入理解TCP协议二(连接管理机制、WAIT_TIME、滑动窗口、流量控制、拥塞控制)
  • 社区团购商城小程序v18.1开源独立版+前端
  • MATLAB入门-字符串操作
  • Kong Learning
  • Python怎样写桌面程序
  • 蓝桥杯2023年第十四届省赛真题-平方差--题解
  • iText实战--根据绝对位置添加内容
  • 使用navicat for mongodb连接mongodb
  • Qt ffmpeg音视频转换工具
  • 机器学习笔记 - 视频分析和人类活动识别技术路线简述
  • Redis从入门到精通(三:常用指令)
  • 代码随想录day39 || 动态规划 || 不同路径
  • 电商平台API接口采集电商平台淘宝天猫京东拼多多数据获取产品详情信息,销量,价格,sku案例
  • The ‘<‘ operator is reserved for future use. 错误解决
  • vulnhub靶机Thoth-Tech