僅供預設處理常式使用的權限

數個核心裝置功能 (例如,讀取通話記錄和傳送簡訊) 皆取決敏感的使用者資訊存取權。為保護使用者隱私,並讓使用者進一步控管提供給裝置上應用程式的資訊,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. 詢問使用者是否要變更裝置的預設簡訊處理常式的提示