Xác định ứng dụng do nhà phát triển sở hữu

Đối với các trường hợp sử dụng như phân tích hoặc chống lừa đảo trên một thiết bị nhất định, bạn có thể cần liên hệ việc sử dụng hoặc các hành động trên một tập hợp ứng dụng do tổ chức của bạn sở hữu. Dịch vụ Google Play cung cấp một tuỳ chọn tôn trọng quyền riêng tư có tên là mã nhóm ứng dụng.

Phạm vi mã nhóm ứng dụng

Mã nhóm ứng dụng có thể có một trong các phạm vi đã xác định sau đây. Để xác định phạm vi mà một mã nhận dạng cụ thể liên kết, hãy gọi getScope().

Phạm vi nhà phát triển trên Google Play

Đối với các ứng dụng được cửa hàng Google Play cài đặt, API mã nhóm ứng dụng sẽ trả về một mã nhận dạng trong phạm vi nhóm ứng dụng được phát hành trong cùng một tài khoản nhà phát triển trên Google Play.

Ví dụ: giả sử bạn phát hành hai ứng dụng trong tài khoản nhà phát triển trên Google Play và cả hai ứng dụng đều được cài đặt trên cùng một thiết bị thông qua Cửa hàng Google Play. Các ứng dụng có cùng mã nhóm ứng dụng trên thiết bị đó. Mã nhận dạng giống nhau ngay cả khi các ứng dụng được ký bằng các khoá khác nhau.

Phạm vi ứng dụng

Trong bất kỳ điều kiện nào sau đây, SDK mã nhận dạng nhóm ứng dụng sẽ trả về một mã nhận dạng duy nhất cho chính ứng dụng gọi trên một thiết bị nhất định:

  • Ứng dụng này do một trình cài đặt không phải Cửa hàng Google Play cài đặt.
  • Dịch vụ Google Play không thể xác định tài khoản nhà phát triển trên Google Play của ứng dụng.
  • Ứng dụng này được cài đặt trên một thiết bị không có Dịch vụ Google Play.

Đừng dựa vào giá trị đã lưu vào bộ nhớ đệm của mã nhóm ứng dụng

Trong bất kỳ điều kiện nào sau đây, bạn có thể đặt lại mã nhóm ứng dụng cho một nhóm các ứng dụng nhất định được cài đặt qua Cửa hàng Google Play trên thiết bị:

  • API mã nhóm ứng dụng chưa được các nhóm ứng dụng có cùng giá trị mã nhận dạng truy cập trong hơn 13 tháng.
  • Ứng dụng gần đây nhất của một nhóm ứng dụng nhất định bị gỡ cài đặt khỏi thiết bị.
  • Người dùng đặt lại thiết bị về trạng thái ban đầu.

Ứng dụng của bạn nên sử dụng SDK để truy xuất giá trị mã nhận dạng mỗi khi cần thiết.

Thêm SDK mã nhóm ứng dụng vào ứng dụng

Đoạn mã sau đây cho thấy một tệp build.gradle mẫu sử dụng thư viện mã nhóm ứng dụng:

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

Đoạn mã mẫu sau đây minh hoạ cách truy xuất mã nhóm ứng dụng một cách không đồng bộ bằng API Tasks trong các dịch vụ của Google Play:

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();
    }
});