在特定裝置上進行數據分析或防範詐騙等用途時,您可能需要為貴機構旗下整組應用程式的使用情形或動作建立關聯。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(); } });