Android復習(四)權限—>僅在默認處理程序中使用的權限
僅在默認處理程序中使用的權限
注意:本指南主要面向準備在 Google Play 商店發布應用的 Android 應用開發者。不過,無論您在哪里發布 Android 應用,為了保護用戶隱私,最好都完成本頁面中所述的任務。
圖 1. 顯示設備上的默認處理程序列表的系統設置屏幕
圖 2. 顯示如何更改默認短信處理程序的系統設置屏幕
圖 3. 詢問用戶是否要更改設備的默認短信處理程序的提示
多種核心設備功能(例如,讀取通話記錄和發送短信)都需要訪問敏感用戶信息。為了保護用戶隱私并讓用戶更好地控制他們為設備上的應用提供的信息,Google Play 會限制應用對與通話和短信相關的權限組的訪問權。
如果您在 Google Play 商店分發應用,并想要訪問與通話記錄和短信相關的敏感用戶信息,則您的應用需要注冊為與該權限相關的核心設備功能的用戶默認處理程序,除非應用滿足 Play 管理中心幫助中心內顯示的任意一種例外情況。例如,要訪問與通話相關的權限,您的應用需要注冊為用戶的默認電話或 Google 助理處理程序,除非應用滿足某種例外情況。
本指南簡要概述了用戶如何訪問搭載 Android 的設備上的默認處理程序;然后介紹了應用必須滿足哪些要求才有資格成為默認處理程序;最后詳細展示了應用如何征求用戶同意以成為默認處理程序。
要詳細了解默認處理程序以及如何處理 Play 商店提供的應用內的權限,請參閱“權限”政策指南。
查看和更改默認處理程序集
Android 為多種核心使用場景(例如,撥打電話、發送短信和提供輔助技術功能)提供了默認處理程序。
Android 上的“設置”應用的一個屏幕向用戶顯示了哪些應用目前正在充當設備核心功能的默認處理程序,如圖 1 所示。用戶可以在此屏幕更改指定功能的默認處理程序,如圖 2 所示。
遵循針對默認處理程序的要求
鑒于應用在充當默認處理程序時會訪問敏感的用戶信息,因此,只有滿足以下 Play 商品詳情和核心功能要求的應用才可成為默認處理程序:
- 應用必須能夠執行其作為默認處理程序所負責的功能。例如,默認短信處理程序應該能夠發送短信。
- 應用必須提供隱私權政策。
- 應用必須在 Play 商店說明中清晰闡述其核心功能。例如,默認電話處理程序應在說明中描述其與電話相關的功能。
- 應用必須聲明與其使用場景相符的權限。如需詳細了解指定處理程序可聲明哪些權限,請參閱 Play 管理中心幫助內有關如何使用短信或通話記錄權限組的指南。
- 應用必須先請求成為默認處理程序,然后才能請求與成為該處理程序相關的權限。例如,應用必須先請求成為默認的短信處理程序,然后才能請求
READ_SMS權限。
征求用戶同意
在確保應用滿足成為默認處理程序所需的各項要求之后,您可以添加邏輯,以顯示如圖 3 所示的對話框。此對話框要求用戶針對特定使用場景將您的應用設置為默認處理程序。
注意:應用必須先請求成為默認處理程序,然后才能請求與成為該處理程序相關的權限。例如,應用必須先請求成為默認的短信處理程序,然后才能請求READ_SMS 權限。
以下示例代碼展示了顯示詢問用戶是否同意更改設備默認短信處理程序的提示所需的邏輯:
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);
kotlin代碼:
val setSmsAppIntent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName)
startActivityForResult(setSmsAppIntent, your-result-code)

浙公網安備 33010602011771號