仅在默认处理程序中使用的权限

多种核心设备功能(例如,读取通话记录和发送短信)都依赖于访问敏感的用户信息。为了保护用户隐私并让用户更好地控制他们为设备上的应用提供的信息,Google Play 会限制应用对与通话和短信相关的权限组的访问权。

如果您在 Google Play 商店分发应用,并想要访问与通话记录和短信相关的敏感用户信息,您的应用需要注册为与该权限相关的核心设备功能的用户默认处理程序,除非应用满足 Play 管理中心帮助中心内显示的任意一种例外情况例如,为了获取与通话相关的权限,您的应用需要注册为用户的默认电话或 Google 助理处理程序,除非应用满足某种例外情况。

本指南简要概述了用户如何访问搭载 Android 的设备上的默认处理程序;然后介绍了应用必须满足哪些要求才有资格成为默认处理程序;最后详细介绍了应用征求用户同意以成为默认处理程序的过程。

如需详细了解默认处理程序以及如何处理 Play 商店提供的应用内的权限,请参阅“权限”政策指南

查看和更改默认处理程序集

Android 允许用户为拨打电话、发送短信和提供辅助技术功能等多种核心使用场景设置默认处理程序。

Android“设置”应用中的一个界面向用户显示了哪些应用目前为设备核心功能的默认处理程序,如图 1 所示。用户可以在此屏幕中更改特定功能的默认处理程序,如图 2 所示。

默认应用设置的屏幕截图
图 1. 显示设备上的默认处理程序列表的系统设置界面。
默认短信应用设置的屏幕截图
图 2. 显示如何更改默认短信处理程序的系统设置界面。

遵守对默认处理程序的要求

鉴于应用在充当默认处理程序时会访问敏感的用户信息,因此,只有满足以下 Play 商品详情和核心功能要求的应用才可成为默认处理程序:

  • 应用必须能够执行其作为默认处理程序所负责的功能。例如,默认短信处理程序必须能够发送短信。
  • 应用必须提供隐私权政策。
  • 应用必须在 Play 商店说明中清晰阐述其核心功能。例如,默认电话处理程序应在说明中描述其与电话相关的功能。
  • 应用必须声明与其使用场景相符的权限。如需详细了解特定处理程序可声明哪些权限,请参阅 Play 管理中心帮助内有关使用短信或通话记录权限组的指南
  • 应用必须先请求成为默认处理程序,然后才能请求与成为该处理程序相关的权限。例如,应用必须先请求成为默认短信处理程序,然后才能请求 READ_SMS 权限。

在确保应用遵守成为默认处理程序所需满足的各项要求之后,您可以添加逻辑以显示图 3 中所示的对话框。此对话框要求用户针对特定使用场景将您的应用设置为默认处理程序。

显示面向用户的对话框的屏幕截图
图 3. 询问用户是否要更改设备的默认短信处理程序的提示。

以下示例代码展示了显示询问用户是否同意更改设备默认短信处理程序的提示所需的逻辑:

Kotlin

val setSmsAppIntent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName)
startActivityForResult(setSmsAppIntent, your-result-code)

Java

Intent setSmsAppIntent =
        new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,
        getPackageName());
startActivityForResult(setSmsAppIntent, your-result-code);