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

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