Android 11 开发者预览版现已推出;快来测试并分享您的反馈吧

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

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

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

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

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

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

Android 为多种核心使用场景(例如,拨打电话、发送短信和提供辅助技术功能)提供了默认处理程序。

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

默认应用设置的屏幕截图
图 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);
    
显示面向用户的对话框的屏幕截图
图 3. 询问用户是否要更改设备的默认短信处理程序的提示