资源简介
ICS 33.030 CCS M21
团体 标准
T/TAF 353.2—2026
移动互联网应用程序(APP)最小必要申请使用权限要求第 2 部分:相册
Mobile application software permission application and usage
minimization and necessity requirements—
Part 2:Photo gallery
2026-06-17 发布 2026-06-17 实施
电信终端产业协会发布
目次
前言 II
引言 III
1 范围 1
2 规范性引用文件 1
3 术语和定义 1
4 缩略语 1
5 基本原则 2
6 典型场景 2
7 技术要求 4
8 评估要求 4
附录 A(资料性) Android 系统 APP 申请使用相册访问权限代码示例 6
附录 B(资料性) Android 系统相册选择器使用说明 9
参考文献 12
I
前言
本文件按照 GB/T 1.1—2020《标准化工作导则第 1 部分:标准化文件的结构和起草规则》的规定起草。
本文件是 T/TAF 353《移动互联网应用程序(APP)最小必要申请使用权限要求》的第 2 部分。T/TAF 353 已经发布了以下部分:
——第1部分:总则;
——第2部分:相册;
——第3部分:文件;
——第4部分:联系人;
——第5部分:通话记录;
——第6部分: 日历;
——第7部分:短信。
请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。
本文件由电信终端产业协会(TAF)提出并归口。
本文件起草单位:中国信息通信研究院、维沃移动通信有限公司、OPPO广东移动通信有限公司、小米通讯技术有限公司、荣耀终端股份有限公司、玩咖欢聚科技(北京)有限公司、华为终端有限公司、北京三星通信技术研究有限公司、卓望数码技术(深圳)有限公司、友盟同欣(北京)科技有限公司、阿里巴巴(北京)软件服务有限公司、厦门美柚股份有限公司、上海声网科技有限公司。
本文件主要起草人:姚一楠、贾科、赵盈洁、汪明华、郑小楠、王艳红、陈鑫爱、周飞、李京典、李腾、杨明慧、赵小平、吴越、张丹静雅、闫金保、赵晓娜、刘伟峰、衣强、王彬、张圣迪、杨艺、贾紫薇、姚栋、刘艾婧、黄鹏华。
II
引言
随着移动互联网的快速发展,APP已成为用户获取信息和服务的主要载体,但其过度申请和滥用权限的问题日益突出,严重威胁用户信息安全和合法权益。
T/TAF353《移动互联网应用程序(APP)最小必要申请使用权限要求》系列标准旨在对 APP 最小必要的申请使用权限提出要求,由 7 部分构成。
——第 1 部分:总则。目的在于规定 APP 最小必要申请使用权限的基本原则、基本要求,以及 APP
开发运营者、移动应用分发平台、移动智能终端、第三方评估机构在最小必要权限管理方面的管理要求。
——第 2 部分:相册。目的在于规定移动互联网应用程序(APP)最小必要的申请访问相册的基本原则、典型场景、技术要求和评估要求。
——第 3 部分:文件。目的在于规定移动互联网应用程序(APP)最小必要的申请使用文件的基本原则、典型场景、技术要求和评估要求。
——第 4 部分:联系人。目的在于规定移动互联网应用程序(APP)最小必要的申请使用终端系统联系人权限的基本原则、典型场景、技术要求和评估要求。
——第 5 部分:通话记录。目的在于规定移动互联网应用程序(APP)最小必要的申请使用通话记录权限的基本原则、典型场景、技术要求和评估要求。
——第6 部分: 日历。目的在于规定移动互联网应用程序(APP)最小必要的申请使用日历访问权限的基本原则、典型场景、技术要求和评估要求。
——第 7 部分:短信。目的在于规定移动互联网应用程序(APP)最小必要的申请使用短信的基本原则、典型场景、技术要求和评估要求。
III
移动互联网应用程序(APP)最小必要申请使用权限要求
第 2 部分:
相册
1 范围
本文件规定了移动互联网应用程序(APP)最小必要的申请访问相册的基本原则、典型场景、技术要求和评估要求。
本文件适用于移动互联网应用程序开发运营者规范的申请使用访问相册的相关权限,也适用于主管部门、第三方评估机构、移动应用分发平台、移动智能终端等对 APP 申请使用系统权限行为进行监督、管理和评估。
2 规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
T/TAF 353.1—2026 移动互联网应用程序(APP)最小必要申请使用权限要求第1部分:总则
3 术语和定义
T/TAF 353.1—2026界定的以及下列术语和定义适用于本文件。
3.1
相册访问权限 photo gallery access permission
由移动智能终端操作系统提供,允许移动互联网应用程序读取终端相册库中图片和视频数据的一种控制机制。
注:本文件所指权限仅为操作系统定义并开放给APP申请使用的权限。
示例:Android 系统中相册访问权限包括读图片权限(android.permission.READ_MEDIA_IMAGES)和读视频权限(android.permission.READ_MEDIA_VIDEO)
3.2
相册选择器 photo picker
移动智能终端操作系统向 APP 开放的交互组件,能够为用户提供选择界面和交互流程,使 APP 无需
申请相册访问权限,即可访问用户选择的图片和视频文件。
4 缩略语
下列缩略语适用于本文件。
APP:移动互联网应用程序(Mobile Internet Application)
1
5 基本原则
APP申请访问系统相册的基本原则如下:
a) 应满足 T/TAF 353.1—2026 总则中的原则;
b) 选择器优先原则:当操作系统相册选择器支持 APP 实现由用户选择使用照片、视频功能时,APP应优先选用相册选择器实现,由用户主动选择单个或多个文件进行分析,而非通过申请读图片和读视频权限访问全量相册库文件。
注:如部分操作系统相册访问权限本身可以实现为用户提供终端相册照片、视频信息的选择和交互,可视为具备和相册选择器同等功能。
6 典型场景
6.1 APP 可申请使用相册访问权限场景
APP(包括嵌入的SDK)应按照业务功能场景申请使用相册访问权限,不应过度申请权限。APP 可通过获得权限访问全量相册内容的典型场景见表 1。
表1 可访问全量相册内容的典型场景
场景
描述
细分场景
可申请权限
读照片
读视频
图片文件备份及
使用
通过读取设备中现有图片文件,同步或备份到用户指定的存储(设备、云盘等)
备份:本地图片文件记录到云盘
√
—
更换手机,将旧设备图片文件转移至新手机上
换机:转移文件至新设备,具体点击同步图片文件后申请该权限
视频文件备份及
通过读取设备中现有视频文件,同步或备份到用户指定的存储(设备、云盘等)
备份:本地视频文件记录到云盘
更换手机,将旧设备视频文件转移至新手机上
换机:转移文件至新设备,具体点击同步视频文件后申请该权限
清理图片功能
通过访问设备中的图片文件,进行智能管理,识别相似图片或截图,授权后用户可快速清理不必要的图片,以优化设备存储空间
管理:获取本地图片文件,访问媒体库扫描全部文件,处理模块所需图片
清理视频功能
通过访问设备中的视频文件,自动分析视频内容,识别相似重复视频等,授权后用户可快速清理不必要的视频,以优化设备存储空间
管理:获取本地视频文件,访问媒体库扫描全部文件,处理模块所需视频
6.2 APP 无需申请使用相册访问权限场景
当 APP 出现以下情形时,申请使用相册访问权限要求如下。
a) 相册访问权限的使用与 APP 的服务场景并没有直接关联的不应申请使用相册访问权限。
b) 仅以服务体验、产品研发、算法推荐、风险控制为由的不应申请使用相册访问权限。
2
c) 获取数据仅为了将其出售或分享给第三方用于分析、仅用于广告推荐的不应申请使用相册访问权限。
d) 无需相册访问权限就能实现 APP 同等功能的不应申请使用相册访问权限。Android 系统相册选择器相关接口示例见附录 B。
e) 不宜访问全量相册内容的典型场景见表 2。
表2 不宜访问全量相册内容的典型场景
备注
1)用于答案解析:通过选择图片(外语/题目)上传至翻译/解题系统进行处理,生成答案展示
信息识别
2)用于证件信息识别:选择证件图片(身份证或银行卡等)快速识别关键信息,快速回填
3)用于健康分析:通过选择图片,上传至服务器进行识别,判断身体健康状态
4)用于数量识别:选择需要识别的单张图片,进行钢管、棋子等数量计数
5)用于识别产品价格:选择产品图片(如行驶证照片)对物品进行估价
6)用于转化文字信息:选择图片或视频上传至系统进行处理,识别内容转化文字
用户主动选择一张
或多张图片/视频进
行特定内容的识别
分析。无需访问整个
相册库,可采用相册选择器替代实现
身份/资质认证
用户通过应用内的认证功能上传证件图片(如房产证、驾照等),用于完成身份验证或资质审核。通过用户主动选择的证件图片,上传至服务器进行验证
图片&视频发送
消息发送功能需要您通过系统选择器主动选择图片&视频,通常服务于以下场景:
1)聊天对话(发送图片&视频信息):聊天或AI对话中发送本地图片或视频,工作群发送图文消息
2)客服交流(售后服务/客服交流时发送图片或视频)发送图片辅助问题描述
3)用户可以通过应用内的意见反馈功能提交问题或建议,并上传相关的照片或视频文件作为举证
图片编辑
选中相册内单张或多张图片进行二次基础编辑创作,通常服务于以下场景:
1)如对图片进行二次压缩,添加水印等基础图片编辑
2)上传图片生成电子相册或新视频等
3)用于建筑或特殊行业图纸标注:查看cad图纸,添加文字标注等
用户选择图片或视频来更生动描述其内容,提升信息吸引力和可读性,通常服务以下场景:
信息发布
1)选择单个或多个图片或视频,发布上传资讯(如:同城贴,二手交易,工作信息等)
2)自定义背景设置:选择相册中单个或多个图片或视频,设置会议,课程,主页背景或 App 开屏壁纸,动画背景等
3)会议记录、学习笔记等添加图片
4)用户在完成订单后,可以上传图片或视频并撰写评价或发布点评
5)商品编辑:生成产品演示图片或视频文件,上传电商等平台
6)教程指导:教育平台选择单个或多个图片或视频文件,直观步骤展示
7)短视频分享:选择相册多个或多个视频文件,发布个人视频内容
设置头像
选择相册照片设置个人社交头像,工作头像等
3
表 2 不宜访问全量相册内容的典型场景(续)
扫一扫
选择相册需要识别的单张图片,识别二维码信息
用户主动选择一张或多张图片/视频进行特定内容的识别分析。无需访问整个相册库,可采用相册选择器替代实现
美化
设备中的图片或视频文件进行二次美化通常服务,通常服务以下场景:
1)图片编辑如ps,美颜 :(美化、拼图、抠图、水印、调色等)
2)视频编辑如二次创作,短视频特效等
隐藏功能
将设备中的指定图片或视频移入加密或隐藏目录,防止在系统图库中直接浏览
投屏功能
主动选择设备中的视频文件,将内容实时传输到电视、投影仪等大屏设备,实现跨设备的媒体共享体验
7 技术要求
7.1 APP 申请相册访问权限
APP 申请相册访问权限应满足如下要求。
a) APP(包括嵌入的 SDK)申请所需权限应在声明文件(例如 AndroidManifest.xml)中严格按照格式规范逐个声明,代码示例见附录 A。
b) APP 应在需要读图片或视频的功能页面启动运行时动态申请权限,不应提前申请,以提高用户对权限申请必要性的理解。
c) APP 申请权限时应同步告知权限申请目的,目的应明确且易于理解,不包含广告及任何欺诈、诱骗、误导用户授权的描述。
d) 如 APP 仅需使用权限组中部分权限,不应在权限声明文件中声明同一权限组其他权限,例如当APP 仅需使用读视频权限时,不应在AndroidManifest.xml 中声明读图片权限。
e) 如用户拒绝或撤回授予某服务类型非必要系统权限,APP 不应强制退出或关闭,且不影响与此权限无关的业务功能使用。
f) APP 不得采用默认、捆绑或使用其他手段变相欺骗、误导、强迫用户授予权限。
g) 如用户明确拒绝 APP 业务功能所需权限,APP 不应频繁申请权限干扰用户正常使用,除非由用户主动触发功能,且没有该权限参与此业务功能无法实现。
7.2 APP 使用相册访问权限
APP 使用相册访问权限应满足如下要求。
a) APP 在使用相册访问权限前,应检查自身是否已获得权限。相册访问权限检查及处理相关代码示例见附录 A。
b) APP 被授予权限后应遵循最小必要原则合理使用权限,不应超频次、超范围、超精度收集图片或视频信息。
c) 若 APP 功能发生变化而不再需要使用相册访问权限时,应及时停止权限申请和使用。对于更新之后的 APP 应重新评估权限申请使用的必要性。
8 评估要求
APP申请使用相册访问权限的评估要求如下。
4
a) 应根据第 6 章典型场景判定是否允许 APP 申请权限访问全量相册内容。若 APP 功能场景未被表
1、表 2 涵盖,则应根据最小必要原则进行评估。对于不满足原则的 APP,应采用技术手段限制其申请或使用相册访问权限。
b) 移动应用分发平台可通过 APP 的功能描述、截图/视频演示、触发路径描述等辅助材料判断 APP申请使用相册访问权限的必要性。
5
附录 A
(资料性)
Android 系统 APP 申请使用相册访问权限代码示例
A.1 权限声明
A.2 权限检查与申请
// 图片权限请求码
private static final int REQUEST_IMAGE_PERMISSION = 101;
// 检查图片权限
private boolean checkImagePermission() {
return ContextCompat.checkSelfPermission(
this,
Manifest.permission.READ_MEDIA_IMAGES
) == PackageManager.PERMISSION_GRANTED;
}
// 申请图片权限
private void requestImagePermission() {
ActivityCompat.requestPermissions(
new String[] {Manifest.permission.READ_MEDIA_IMAGES},
REQUEST_IMAGE_PERMISSION
);
// 视频权限请求码
private static final int REQUEST_VIDEO_PERMISSION = 102;
// 检查视频权限
private boolean checkVideoPermission() {
Manifest.permission.READ_MEDIA_VIDEO
6
// 申请视频权限
private void requestVideoPermission() {
new String[] {Manifest.permission.READ_MEDIA_VIDEO},
REQUEST_VIDEO_PERMISSION
A.3 处理回调
@Override
public void onRequestPermissionsResult(int requestCode,
@NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_IMAGE_PERMISSION) {
handleImagePermissionResult(grantResults);
else if (requestCode == REQUEST_VIDEO_PERMISSION) {
handleVideoPermissionResult(grantResults);
// 处理图片权限回调
private void handleImagePermissionResult(int[] grantResults) { if (grantResults.length > 0 &&
grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 图片权限已授予
loadImages(); } else {
// 图片权限被拒绝
if (shouldShowRequestPermissionRationale(
Manifest.permission.READ_MEDIA_IMAGES)) {
showImageRationale();
} else {
showImageSettingsPrompt();
7
// 处理视频权限回调
private void handleVideoPermissionResult(int[] grantResults) { if (grantResults.length > 0 &&
grantResults[0] == PackageManager.PERMISSION_GRANTED) { // 视频权限已授予
loadVideos(); } else {
// 视频权限被拒绝
Manifest.permission.READ_MEDIA_VIDEO)) {
showVideoRationale();
showVideoSettingsPrompt();
8
附录 B
Android 系统相册选择器使用说明
B.1 功能说明
相册选择器提供系统级照片视频选择功能,允许用户在应用内通过一个统一界面选择并授权共享特定照片视频,应用随后能读取这些用户选中的照片视频数据。
B.2 适用系统
Android 16及以上。
B.3 使用说明
B.3.1 概述
配置Action即可调用PhotoPicker,其余参数按需配置,在onActivityResult对返回数据进行处理。
B.3.2 Action
B.3.2.1 概述
该action仅使用于图片/视频,请求方能读取选中图片/视频的数据,无需申请读权限。返回picker uri,该uri类型仅支持只读、获取有限列信息MediaStore.PickerMediaColumns,其中DATA字段被修饰,非文件在公共路径下的实际路径,
ex/sdcard/.transforms/synthetic/picker/0/com.android.providers.media.photopicker/media/xx
B.3.2.2 参数配置及代码示例
使用Action启动参数配置见表B.1。
表 B.1 使用 Action 启动
名称
值
是否必填
说明
Action
MediaStore.ACTION_PICK_IMAGES
是
允许用户通过该Action获取到图片/视频数据
使用Component启动参数配置见表B.2。
表 B.2 使用 Component 启动
Component
intent.setComponent(new
ComponentName("com.android.photopicker", "com.android.photopicker.MainActivity"));
指定跳转PhotoPicker
代码示例:
Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
9
intent.setComponent(new ComponentName("com.android.photopicker", "com.android.photopicker.MainActivity"));
startActivityForResult(intent, CODE_PICK_IMAGES);
B.3.3 Type
B.3.3.1 概述
用于配置显示获取数据范围,包括只获取图片、只获取视频。如不设置type,则代表图片和视频都获取显示。
参数配置见表B.3。
B.3.3.2 参数配置及代码示例
表 B.3 Type 参数配置
数据类型
mimeType
String
image/*
否
只获取图片
video/*
只获取视频
/
不配置
图片和视频都获取
intent.setType("image/*")//仅图片intent.setType("video/*")//仅视频
参数
MediaStore.EXTRA_PICK_IMAGES_MAX
int
设置多选模式,值大于1且小于等于100。
不传该参数为单选模式
MediaStore.EXTRA_PICKER_PRE_SELECTION_URIS
ArrayList
多选拉起PhotoPicker时,设置预选图片
/视频。受
MediaStore.EXTRA_PICK_IMAGES_MAX影
响,集合长度不可以超过设置的最大选
择数
B.3.4 Extra
B.3.4.1 概述
用于配置多选模式下最大可以选择数据数量,设置预选图片/视频。 B.3.4.2 参数配置及代码示例
参数配置见表B.4。
表 B.4 Extra 参数配置
intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, 50);
10
intent.putExtra(MediaStore.EXTRA_PICKER_PRE_SELECTION_URIS, preSelectResultUris);
B.4 使用示例
Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES); // 必配
intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, 50); // 选配
intent.setType("image/*"); // 选配
intent.putExtra(MediaStore. EXTRA_PICK_IMAGES_IN_ORDER, false); // 选配
intent.putExtra(MediaStore.EXTRA_PICKER_PRE_SELECTION_URIS, preSelectResultUris); //选配
startActivityForResult(intent, CODE_PICK_IMAGES); // 必配
输出结果获取在onActivityResult中获取选中图片的uri集合,区分单选和多选。单选:从intent中直接获取:data.getData()。
多选:从intent中取ClipData,uri信息封装在ClipData中。
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CODE_PICK_IMAGE && resultCode == Activity.RESULT_OK) {
if (data != null) {
mSelectResultUris.clear();
if (mIsMultiSelect) { // 多选,设置多选参数时配置
ClipData clipData = data.getClipData();
if (clipData != null && clipData.getItemCount() > 0) {
for (int i = 0; i < clipData.getItemCount(); i++) {
ClipData.Item item = clipData.getItemAt(i);
mSelectResultUris.add(item.getUri());
} else { // 单选
mSelectResultUris.add(data.getData());
Log.d(TAG, "onActsivityResult: mSelectResultUri = " +
mSelectResultUris.size());
11
参考 文献
[1] YD/T 4177.3—2022 移动互联网应用程序(APP)收集使用个人信息最小必要评估规范第3 部分:图片信息
[2] YD/T 4177.8—2023 移动互联网应用程序(APP)收集使用个人信息最小必要评估规范第8 部分:录像信息
12

评论