某些核心设备功能(例如读取通话记录和发送短信)需要访问敏感的用户信息。为了保护用户隐私并让用户更好地控制他们提供给设备上应用的信息,Google Play 限制应用访问与通话和消息相关的权限组。
如果您在 Google Play 商店分发应用并希望访问与通话记录和短信相关的敏感用户信息,您的应用需要注册为该权限相关核心设备功能的用户的默认处理程序,除非您的应用符合 Play 管理中心帮助中心中出现的例外情况之一。例如,要访问与通话相关的权限,您的应用需要注册为用户的默认手机或助理处理程序,除非您的应用符合例外情况。
本指南简要概述了用户如何在 Android 驱动设备上访问默认处理程序。然后,本指南回顾了应用在成为默认处理程序之前必须满足的要求。最后,本指南将引导您完成获取用户同意以成为默认处理程序的过程。
要详细了解默认处理程序以及如何在 Play 商店上架的应用中处理权限,请参阅权限政策指南。
查看和更改默认处理程序的设置
Android 允许用户为多个核心用例设置默认处理程序,例如拨打电话、发送短信以及提供辅助技术功能。
Android 上的“设置”应用包含一个屏幕,显示哪些应用当前是设备核心功能的默认处理程序,如图 1 所示。在此屏幕中,用户可以更改给定功能的默认处理程序,如图 2 所示。
遵循默认处理程序的要求
鉴于应用在作为默认处理程序时访问敏感用户信息,您的应用必须满足以下 Play 商店上架和核心功能要求,才能成为默认处理程序
- 您的应用必须能够执行其作为默认处理程序的功能。例如,默认短信处理程序必须能够发送文本消息。
- 您的应用必须提供隐私政策。
- 您的应用必须在 Play 商店描述中明确其核心功能。例如,默认手机处理程序应在描述中说明其与手机相关的功能。
- 您的应用必须声明适用于其用例的权限。有关作为给定处理程序可以声明哪些权限的更多详细信息,请参阅 Play 管理中心帮助中心中关于使用短信或通话记录权限组的指南。
- 您的应用必须在请求与该处理程序关联的权限之前,请求成为默认处理程序。例如,应用必须在请求
READ_SMS
权限之前,请求成为默认短信处理程序。
请求用户同意
在确保您的应用遵循成为默认处理程序所需的各项要求后,您可以添加逻辑以显示图 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);