辨識開發人員擁有的應用程式

在特定裝置上進行數據分析或防範詐騙等用途時,您可能需要為貴機構旗下整組應用程式的使用情形或動作建立關聯。Google Play 服務提供名為應用程式組 ID 的隱私權友善選項。

應用程式組 ID 範圍

應用程式集 ID 可具有下列其中一個已定義的範圍。如要判斷特定 ID 關聯的範圍,請呼叫 getScope()

Google Play 開發人員範圍

如果是透過 Google Play 商店安裝的應用程式,應用程式組合 ID API 會傳回 ID,範圍限定為在同一 Google Play 開發人員帳戶下發布的應用程式組合。

舉例來說,假設您在 Google Play 開發人員帳戶下發布了兩個應用程式,且這兩個應用程式都透過 Google Play 商店安裝在同一部裝置上。這些應用程式在該裝置上共用相同的應用程式集 ID。即使應用程式是以不同金鑰簽署,ID 仍會相同。

應用程式範圍

在下列任一情況下,應用程式組 ID SDK 會傳回特定裝置上呼叫應用程式專屬的 ID:

  • 應用程式是由 Google Play 商店以外的安裝程式安裝。
  • Google Play 服務無法判斷應用程式的 Google Play 開發人員帳戶。
  • 應用程式安裝在沒有 Google Play 服務的裝置上。

請勿依賴應用程式組 ID 的快取值

在下列任一情況下,裝置上特定 Google Play 商店安裝應用程式組合的應用程式集 ID 可能會重設:

  • 共用相同 ID 值的應用程式群組,超過 13 個月未存取應用程式組 ID API。
  • 從裝置中解除安裝特定應用程式組合的最後一個應用程式。
  • 使用者將裝置恢復原廠設定。

應用程式每次需要 ID 值時,都應使用 SDK 擷取。

在應用程式中加入應用程式組 ID SDK

下列程式碼片段顯示使用應用程式集 ID 程式庫的 build.gradle 檔案範例:

dependencies {
    implementation 'com.google.android.gms:play-services-appset:16.1.0'
}

下列程式碼片段範例示範如何在 Google Play 服務中,使用 Tasks API 擷取應用程式集 ID (非同步):

Kotlin

val client = AppSet.getClient(applicationContext) as AppSetIdClient
val task: Task<AppSetIdInfo> = client.appSetIdInfo as Task<AppSetIdInfo>

task.addOnSuccessListener({
    // Determine current scope of app set ID.
    val scope: Int = it.scope

    // Read app set ID value, which uses version 4 of the
    // universally unique identifier (UUID) format.
    val id: String = it.id
})

Java

Context context = getApplicationContext();
AppSetIdClient client = AppSet.getClient(context);
Task<AppSetIdInfo> task = client.getAppSetIdInfo();

task.addOnSuccessListener(new OnSuccessListener<AppSetIdInfo>() {
    @Override
    public void onSuccess(AppSetIdInfo info) {
        // Determine current scope of app set ID.
        int scope = info.getScope();

        // Read app set ID value, which uses version 4 of the
        // universally unique identifier (UUID) format.
        String id = info.getId();
    }
});