Android14新权限机制

news2024/9/24 23:24:51

Android14新权限机制

new-permission-policy for android 14
在本文中,我们将了解 Android14 的新权限,该权限允许用户仅授予对选定媒体(照片/视频)的访问权限,而不是整个库
这个新权限允许用户在我们的应用程序运行时授予部分访问权限 mediaAndroid14 or higher

新权限对话框

它有3个选项
您将看到新选项反映了您的要求。如果用户请求照片,将出现以下对话框。

新权限的权限对话框

声明新权限的效果

通过声明READ_MEDIA_VISUAL_USER_SELECTED,我们让权限控制器知道我们的应用程序支持手动重新请求选择更多媒体

对行为的影响

当我们声明READ_MEDIA_VISUAL_USER_SELECTED这个新权限和用户时selects Select photos and videos(Select photos or Select videos)

  • READ_MEDIA_IMAGES权限和READ_MEDIA_VIDEO都被拒绝了
  • READ_MEDIA_VISUAL_USER_SELECTED授予权限✅ ,提供部分和临时访问用户的照片和视频(照片或视频)
  • 稍后,如果我们需要访问其他照片和视频,我们必须手动 请求 READ_MEDIA_IMAGESREAD_MEDIA_VIDEO权限(或两者)。

实现

  • 将以下权限添加到AndroidManifest.xml
< uses-permission  android:name = "android.permission.READ_MEDIA_IMAGES" />
 // 新权限
< uses-permission  android:name = "android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
  • 使用请求权限ActivityResultContract

我们需要使用READ_MEDIA_IMAGESREAD_MEDIA_VIDEO权限进行请求,所以我们使用RequestMultiplePermissions

val permissionLauncher = 
    rememberLauncherForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { mapResults -> 
        mapResults.forEach { 
            Log.d(TAG, "Permission: ${it.key} Status: ${it.value} " ) 
        } 
        // 检查是否有请求的权限是否被授予
        if (mapResults.values.any { it }) { 
            // 查询内容解析器
            queryContentResolver(context) { listOfImages -> 
                imageDataModelList = listOfImages 
            } 
        } 
    }
  • 发起权限请求
OutlinedButton(onClick = {
    permissionLauncher.launch(arrayOf(READ_MEDIA_IMAGES, READ_MEDIA_VISUAL_USER_SELECTED))
}) {
    Text("Allow to read all or select images")
}

new-permission-dialog
Demo示例代码:
https://github.com/navczydev/Android14Samples/tree/more-permisisons

参考

https://android-developers.googleblog.com/2023/03/android-14-developer-preview-2.html

https://developer.android.com/about/versions/14/changes/partial-photo-video-access

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity3D:立方体贴图

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 立方体贴图 __立方体贴图__是六个正方形纹理的集合&#xff0c; 这些纹理代表环境中的反射。六个正方形组成一个包围着对象的虚构立方体的各面&#xff1b; 每个面代表沿世界轴方向…

colmap多相机重建多场景及数据库数据快速修改方法

1 colmap流程 1.1 新建项目 首先打开colmap&#xff0c;然后创建新的project&#xff0c;其中数据库目录和名称自己选定&#xff0c;注意不要将它放到图像目录下即可。然后images选择的是图像目录&#xff08;比如我这里是guangxi/section1&#xff09;&#xff0c;这个目录下…

聊天机器人简要理解

聊天机器人 身边的同事或多或少都在聊ChatGPT&#xff0c;这又使得学生时代训练模型的恐惧感开始支配我。说起聊天机器人&#xff0c;我们先熟悉一下不同对话系统的概念。 一、对话系统分类 1、单轮对话 单轮与传统的问答系统相类似&#xff0c;是智能对话系统的初级应用。…

时代变迁的缩影:从天涯BBS的沦落,到媲美EXCEL的WPS后辈的腾达

昔日王者&#xff0c;今朝黯然 “无法访问此网站” 陪伴我们青春的天涯论坛就此真的与我们相忘于天涯。 江湖路远&#xff0c;不知何日才能重逢&#xff1f; 这是第几个了&#xff1f; 那个人人自由创造的时代是否真的已经逝去&#xff1f; 近年来网易、凤凰等论坛相继关闭。…

Docker Harbor

目录 一、Docker Harbor概述 1、Harbor的优势 2、Harbor知识点 3、Docker私有仓库架构 二、Harbor构建Docker私有仓库 1、环境配置 2、案例需求 3、部署docker-compose服务 4、部署harbor服务 5、启动harbor ① 访问 ② 添加项目并填写项目名称 ③ 通过127.0.0.1来…

大江南北十三省,蓬门今始为君开,数字政府建设“实在”必行

引言&#xff1a; 推动数字中国建设是实现中国式数字化进程、抢占未来发展制高点的关键。为全面推动数字化转型在政府领域的纵深发展&#xff0c;各地领导不断进行数字化探索。其中&#xff0c;数字员工凭借流动的数据、流畅的体验&#xff0c;百姓少跑腿、数据多跑路特点&…

零基础也能轻松搭建Python环境和pycharm

目录&#xff1a;导读 引言 python环境安装 pycharm安装 设置 字体的大小&#xff1a; 关闭警告&#xff1a; 代码风格&#xff1a; 代码层级&#xff1a; ide与版本控制的整合&#xff1a; 插件安装&#xff1a;&#xff08;3个&#xff09; 介绍&#xff1a; 控制台&…

HJTB-9222跳闸闭锁继电器导轨安装 约瑟JOSEF

名称&#xff1a;跳闸闭锁继电器品牌&#xff1a;JOSEF约瑟型号&#xff1a;HJTB-9222额定电压&#xff1a;110、220V触点容量&#xff1a;250V/5A动作时间&#xff1a;≤10mS HJTB系列跳闸闭锁继电器 系列型号 HJTB-9222跳闸闭锁继电器 概述和应用 HJTB系列跳闸闭锁继电器…

NLP模型(四)——seq2seq模型与Attention机制介绍

文章目录 1. seq2seq模型介绍2. 模型计算2.1 LSTM结构单元2.2 seq2seq计算流程 3. Attention机制3.1 引入Attention3.2 计算全局对齐权重 4. seq2seq加入Attention机制5. 模型理解6. 模型细节6.1 解码器结构6.2 加入信息方式 参考文章 1. seq2seq模型介绍 传统的RNN只能处理 1…

诺派克ROPEX热封控制器维修RES-407/RES-406

德国ROPEX热封控制器维修型号包括&#xff1a;RES-401&#xff0c;RES-402&#xff0c;RES-403&#xff0c;RES-406&#xff0c;RES-407&#xff0c;RES-408&#xff0c;RES-409&#xff0c;RES-420&#xff0c;RES-440&#xff0c;MSW-2&#xff0c;PEX-W3&#xff0c;PEX-W4&…

Android 源码浅析:Leakcanary 内存泄漏检测的好帮手

我们一起来分析一下大名鼎鼎的 Leakcanary&#xff0c; 想必作为 Android 开发都多多少少接触过&#xff0c;新版本的 Leakcanary 也用 Kotlin 重写了一遍&#xff0c;最近详细查看了下源码&#xff0c;分享一下。 tips&#xff1a;本来是只想分析下内存泄漏检测部分&#xff…

c语言Have Fun with Numbers

题目 Have Fun with Numbers Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happens to be another 9-digit number consisting exactly the numbers …

2016年iOS公开可利用漏洞总结

0x00 序 iOS的安全性远比大家的想象中脆弱&#xff0c;除了没有公开的漏洞以外&#xff0c;还有很多已经公开并且可被利用的漏洞&#xff0c;本报告总结了2016年比较严重的iOS漏洞&#xff08;可用于远程代码执行或越狱&#xff09;&#xff0c;希望能够对大家移动安全方面的工…

【LeetCode】139. 单词拆分

139. 单词拆分&#xff08;中等&#xff09; 思路 首先将大问题分解成小问题&#xff1a; 前 i 个字符的子串&#xff0c;能否分解成单词&#xff1b;剩余子串&#xff0c;是否为单个单词&#xff1b; 动态规划的四个步骤&#xff1a; 确定 dp 数组以及下标的含义 dp[i] 表示 s…

Zero-ETL、大模型和数据工程的未来

编者按&#xff1a;本文探讨了数据工程领域的未来趋势和挑战&#xff0c;以及其不断变化、甚至经常出现“重塑”的特点。在数据工程领域&#xff0c;大数据的性能、容量提升总是有一定的上限&#xff0c;每一次进步都会带来一定的技术提升&#xff0c;从而提高上限。但是很快我…

解锁采购系统数字升级?来看看云时通SRM!

疫情影响下&#xff0c;全球经济一体化使得企业在供应商的管理上面临着巨大挑战&#xff0c;传统采购方法已经不足以支持企业管理和竞争&#xff0c;企业采购管理急需数字化转型。 相较于传统采购方法&#xff0c;目前成功的供应商系统管理&#xff0c;还需要具有更多的市场要…

IT圈最近比较火热的技术都是哪些?

前言 如果现在要问什么行业最火&#xff0c;毋庸置疑&#xff0c;会有很多人第一反应回答是IT行业。众所周知&#xff0c;近些年互联网行业的高速发展&#xff0c;IT技术不断推陈出新&#xff0c;各种技术更新迭代周期越来越快&#xff0c;涌入IT技术开发的人员也是成倍增长&am…

QT基础铺垫

1.qt定位 qt在整个课程体系中起到以下作用 1.c理论的实践课 2.图形用户界面GUI开发 3.一个独立的就业方向 3.qt特性 qt经常被当作是一个基于c语言的gui开发框架&#xff0c;但是这并不是qt的全部&#xff0c;除了开发界面外&#xff0c;qt还包含了很多其他功能&#xff1…

C++最后一个数组元素后加不加逗号,的问题(C++11 及以上的标准中,最后一个元素后面可以加逗号,也可以不加)

这代码看得我有点疑惑&#xff0c;最后一个元素后咋有个逗号呢&#xff1f;也没报错&#xff1f; 原因&#xff1a; 在 C11 及以上的标准中&#xff0c;最后一个元素后面可以加逗号&#xff0c;也可以不加。因此&#xff0c;上述代码可以写成以下两种形式&#xff1a; std::v…

零基础学SQL(十三、事务)

目录 前置建表 ​编辑 一、什么是事务 二、事务特性ACID 1、原子性(Atomicity) 2、一致性(Consistency) 3、隔离性(Isolation) 4、持久性(Durability) 三、事务控制 1、ROLLBACK 2、COMMIT 使用 set autocommit0;命令修改默认提交方式为FALSE 前置建表 CREATE TABLE…