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

Android14请求动态申请存储权限

Android14请求动态申请存储权限

Android14和Android15存储权限有增加多了选择部分,还是全部。一个小小的存储权限真的被它玩出了花来。本来Android13就将存储权限进行了3个细分,是图片,音频还是视频文件。

步骤一:AndroidManifest
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><!-- Android 13版本适配,细化存储权限 --><uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /><uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /><uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /><!-- Android 14版本适配,部分允许还是全部允许--><uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
步骤二、引入Rxpermissions

你用其他请求库也行

 api 'com.jakewharton.rxbinding4:rxbinding:4.0.0'api 'com.github.tbruyelle:rxpermissions:0.12'
步骤三、定义请求方法
 // 联系:893151960void requestStoragePermission(Context mContext, PermissionListener permissionListener) {if (PermissionCheckUtil.checkPermissions(mContext, PermissionNewUtils.getImageMediaPermission(mContext))) {permissionListener.permission(true);} else {PermissionNewUtils.requestCombinedPermission((FragmentActivity) mContext, PermissionNewUtils.getImageMediaPermission(mContext), new Consumer<Permission>() {@Overridepublic void accept(Permission it) throws Throwable {if (it.granted) {permissionListener.permission(true);} else {boolean partGranted = false;// 部分同意if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE && mContext.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {if (ContextCompat.checkSelfPermission(mContext,READ_MEDIA_VISUAL_USER_SELECTED) == PackageManager.PERMISSION_GRANTED) {permissionListener.permission(true);partGranted = true;}}if (!partGranted) {permissionListener.permission(false);if (it.shouldShowRequestPermissionRationale) {//禁止,不做操作Toast.makeText(context, "禁止了权限", Toast.LENGTH_SHORT).show();} else {Toast.makeText(context, "永久禁止了权限", Toast.LENGTH_SHORT).show();//永久禁止
//                                DialogUtilsKT.okAndCancel(
//                                    mContext,
//                                    mContext.getString(alwaysContent),
//                                    mContext.getString(R.string.ok_go_setting),
//                                    title = mContext.getString(alwaysTitle)
//                                ) {
//                                    PermissionNewUtils.startAppSetting(mContext)
//                                }}}}}});}}

项目demo结构图
在这里插入图片描述有问题或者需要源码都可以私信我

相关文章:

Android14请求动态申请存储权限

Android14请求动态申请存储权限 Android14和Android15存储权限有增加多了选择部分&#xff0c;还是全部。一个小小的存储权限真的被它玩出了花来。本来Android13就将存储权限进行了3个细分&#xff0c;是图片&#xff0c;音频还是视频文件。 步骤一&#xff1a;AndroidManife…...

Doris:数据库建表最佳实践

目录 一、表模型推荐归约 二、字段推荐归约 三、建表推荐归约 四、建表强制归约 五、最佳实践 Doris 数据表模型上目前分为三类&#xff1a;DUPLICATE KEY, UNIQUE KEY, AGGREGATE KEY。因为数据模型在建表时就已经确定&#xff0c;且无法修改。所以&#xff0c;选择一个合…...

Parallels Desktop 20(Mac虚拟机) v20.0.0 for Mac 最新破解版(支持M系列)

Parallels Desktop 20 for Mac 正式发布&#xff0c;完全支持 macOS Sequoia 和 Windows 11 24H2&#xff0c;并且在企业版中引入了全新的管理门户。 据介绍&#xff0c;新版本针对 Windows、macOS 和 Linux 虚拟机进行了大量更新&#xff0c;最大的亮点是全新推出的 Parallels…...

【已解决】华为AR100-S路由器 恢复出厂后,找不到5G wifi的设置

前两帖讨论了华为AR100-S路由器&#xff1a; 一是用电脑浏览器访问web管理界面报错的解决&#xff0c;详情点这里&#xff01; https://blog.csdn.net/weixin_62598385/article/details/142215136 再就是如何回复出厂&#xff0c;也即如何复位&#xff0c; 详情点这里&#xff…...

【MongoDB】--MongoDB批量操作

目录 一、批量更新 一、批量更新 /*** 批量更新的操作* return*/public int batchUpdate(){List<StudentDo> list new ArrayList<>(); //要修改的一批数据List<Pair<Query, Update>> updateList new ArrayList<>(list.size());BulkOperations …...

数据库常规操作

常用的 SQL 语法和操作&#xff1a; 数据定义语言&#xff08;DDL&#xff09; 1.创建数据库CREATE DATABASE database_name;2.删除数据库DROP DATABASE database_name;3.创建表CREATE TABLE table_name (column1 datatype constraints,column2 datatype constraints,...);4.删…...

基于STM32设计的水渠闸门远程控制系统(华为云IOT)(226)

文章目录 一、前言1.1 项目介绍【1】开发背景【2】项目实现的功能【3】项目硬件模块组成【4】ESP8266工作模式配置1.2 设计思路【1】整体设计思路【2】整体构架【3】上位机开发思路1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要1.4 开发工具的选择【1…...

鸿蒙开发(NEXT/API 12)【响应校验】远场通信服务

本协议栈框架支持校验响应功能&#xff0c;应用添加了响应校验器后&#xff0c;可在ResponseValidationCallback中判断响应是否符合预期&#xff0c;不符合那么框架会抛异常。 开发步骤 导包。 import { rcp } from kit.RemoteCommunicationKit;添加响应校验器并且发起请求。 …...

2024最新!!!iOS高级面试题,全!(二)

iOS应用是如何启动以及如何优化 pre-main阶段 加载动态链接器dyld到App进程 加载动态库&#xff08;包括所依赖的所有动态库&#xff09; Rebase 修正内部的指针指向 Bind 修正外部指针指向 初始化Objective C Runtime 包括oc的类、分类的注册&#xff0c;selector唯一性检查等…...

【C#生态园】构建你的C#操作系统:框架选择与实践

探秘C#操作系统开发框架&#xff1a;从框架选择到实际应用 前言 在当今信息技术高度发达的时代&#xff0c;操作系统开发框架为软件工程师提供了全新的可能性。本文将介绍一系列用于C#的操作系统开发框架&#xff0c;探讨它们的核心功能、使用场景、安装与配置方法以及API概览…...

ADB 安装教程:如何在 Windows、macOS 和 Linux 上安装 Android Debug Bridge

目录 一、ADB 介绍 二、Windows 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 验证 ADB 安装 4. 配置环境变量 5. 验证全局 ADB 使用 三、macOS 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 配置环境变量 4. 验证 ADB 安装 四、Linux 系统安装 ADB 1. 使用包管理器安装…...

java(2)方法的使用

目录 1.前言 2.正文 2.1方法的定义 2.2方法的调用过程 2.3方法的实参与形参 2.3.1形参 2.3.2实参 2.3.3参数传递 2.4方法的重载 3.小结 1.前言 哈喽大家好啊&#xff0c;今天博主继续带领大家学习java的基本语法&#xff0c;java的基础语法部分打算用六到七篇博文完…...

基于对数变换的图像美白增强,Matlab实现

博主简介&#xff1a;matlab图像处理&#xff08;QQ:3249726188&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于对数变换的图像美白增强&#xff0c;用matlab实现。 一、案例背景和算法介绍 这次案例是美白算法&…...

MySQL高阶1873-计算特殊奖金

目录 题目 准备数据 分析数据 总结 题目 编写解决方案&#xff0c;计算每个雇员的奖金。如果一个雇员的 id 是 奇数 并且他的名字不是以 M 开头&#xff0c;那么他的奖金是他工资的 100% &#xff0c;否则奖金为 0 。 返回的结果按照 employee_id 排序。 准备数据 Crea…...

Ngnix 在windows上的简单使用

安装 下载链接: nginx: download 选择页面中 Stable version 下的windows版本直接下载解压到本地。 运行nginx: 解压到本地后,结构如图: cmd 进入到上图的根目录,运行 start nginx ,即可开启。 打开 http://localhost 进行查看,如果正常打开nginx的测试页面,则说…...

嵌入式开发--STM32延时函数重构

在做嵌入式开发的时候&#xff0c;经常需要用到延时函数&#xff0c;STM32为我们提供了一个标准的毫秒级延时函数&#xff1a;HAL_Delay()。这个函数用起来很方便&#xff0c;括号内的数就是延时的毫秒数。 但是程序中如果需要用到看门狗的话呢&#xff0c;这玩意需要经常喂的…...

OpenAI最新发布的o1-preview模型,和GPT-4o到底哪个更强?

近日&#xff0c;OpenAI又出新作&#xff0c;正式推出了名为o1的新模型&#xff0c;这是其“推理”系列的首个成员&#xff0c;自然引起了业界的广泛关注。本文旨在全面剖析o1模型的核心特征、独特优势&#xff0c;并通过与先前版本GPT-4o的细致对比&#xff0c;为读者揭示这一…...

基于Python+SQLite的课程管理系统

系统需求简介 1.1需求分析 实现一个具体的课程管理系统。按照软件工程思路设计简化的专业课数据库&#xff0c;尽量模拟现有专业课程一个学期的选课排课原型实际情况。&#xff08;注&#xff1a;本系统由本人单独设计、开发完成&#xff09; 1.2 数据结构需求分析 课程管理…...

每日一练 | USG系统默认安全区域

01 真题题目 关于USG系统&#xff08;华为的安全网关产品&#xff09;的安全防火墙的默认安全区域的描述&#xff0c;正确的是&#xff1a; A. 默认安全区域可以删除 B. 默认安全区域可以修改安全级别 C. 默认安全区域不能删除&#xff0c;但可以修改安全级别D. 默认安全区域…...

技术老总眼中的品宣与促销:挑战与对策

在许多技术驱动的企业中&#xff0c;技术老总们往往对产品研发和技术创新拥有深刻的理解&#xff0c;然而当涉及市场营销&#xff0c;特别是“品宣”&#xff08;品牌宣传&#xff09;与“促销”时&#xff0c;他们的观念可能相对简单&#xff0c;有时甚至认为这两者没有本质的…...

如何删除论文脚注横线的方法——视图-草稿-引用——显示备注——删除脚注分隔符-即可。

如何删除论文脚注横线的方法——视图-草稿-引用——显示备注——删除脚注分隔符-即可。 Word中脚注线不会删&#xff1f;这里有妙招&#xff01;,教育,职业教育,好看视频...

PA100K数据集实战:从下载到结构化解析全流程

1. PA100K数据集初探&#xff1a;为什么选择它&#xff1f;如果你正在研究行人属性识别&#xff0c;PA100K绝对是个绕不开的宝藏数据集。这个数据集包含了10万张真实监控场景下的行人图像&#xff0c;每张图都标注了26种常见属性——从衣着风格&#xff08;比如是否穿T恤、裙子…...

ARM PMU外部接口与性能监控寄存器详解

1. ARM性能监控寄存器外部接口深度解析性能监控单元(PMU)是现代处理器架构中用于硬件性能分析的核心模块&#xff0c;它通过一组可编程计数器实时捕获处理器微架构层面的各类事件。在ARMv8/v9架构中&#xff0c;PMU不仅可以通过系统寄存器访问&#xff0c;还提供了标准化的外部…...

内网环境下Win7系统批量离线补丁部署实战指南

1. 内网Win7补丁部署的挑战与解决方案老旧Win7系统在内网环境中的安全隐患就像漏雨的屋顶&#xff0c;看似不影响日常使用&#xff0c;但随时可能引发严重后果。我经手过几十家单位的系统加固项目&#xff0c;发现这些场景存在三个典型痛点&#xff1a;首先是补丁来源问题&…...

终极免费方案:WandEnhancer完整解锁WeMod Pro功能快速指南

终极免费方案&#xff1a;WandEnhancer完整解锁WeMod Pro功能快速指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否渴望享受WeMod Pro会员的所…...

科华UPS电源全品类汇总:选型与场景适配指南

科华UPS电源作为国内智慧电能领域的主流产品&#xff0c;覆盖家用、办公、机房、工业等全场景&#xff0c;产品系列丰富、规格齐全&#xff0c;但多数用户在选型时&#xff0c;常因分不清系列差异、功率适配、架构类型而踩坑。本文系统汇总科华UPS电源的核心分类、主流系列、核…...

【Lindy营销自动化工作流终极指南】:20年实战验证的7大反脆弱性设计原则,92%企业漏掉的关键衰减阈值

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Lindy营销自动化工作流的基本范式与历史验证 Lindy效应指出&#xff0c;一个事物的预期剩余寿命与其当前年龄成正比——在营销自动化领域&#xff0c;Lindy范式体现为&#xff1a;经时间检验仍被广泛采…...

机器学习的最佳实践:这7个原则让你的模型更稳定

对于软件测试从业者而言&#xff0c;机器学习技术正在快速融入测试流程&#xff1a;从自动化测试用例生成、缺陷预测到测试环境异常检测&#xff0c;机器学习模型的稳定性直接决定了测试结果的可靠性——如果模型在测试环境波动、输入数据变化时性能骤降&#xff0c;不仅无法提…...

XXPermissions:Android权限管理框架的架构设计与最佳实践

XXPermissions&#xff1a;Android权限管理框架的架构设计与最佳实践 【免费下载链接】XXPermissions Android Permissions Framework, Adapt to Android 16 项目地址: https://gitcode.com/GitHub_Trending/xx/XXPermissions 在Android应用开发中&#xff0c;权限管理一…...

为什么你明明很努力,领导却总看不到?问题出在这

许多测试同行在深夜加班排查Bug时&#xff0c;在凌晨赶写自动化脚本时&#xff0c;在对着海量数据做性能分析时&#xff0c;内心都会浮现一个共同的困惑&#xff1a;我明明已经这么拼了&#xff0c;为什么在领导眼里&#xff0c;我依然是个“找茬的”&#xff0c;而不是“创造价…...