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 phòng chống gian lận trên một thiết bị cụ thể, bạn có thể cần liên kết việc sử dụng hoặc các hành động trên một nhóm ứ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 được xác định sau. Để xác định phạm vi liên kết với một mã nhận dạng cụ thể, 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 do Cửa hàng Google Play cài đặt, API mã nhận dạng 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 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 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 này có cùng một mã nhóm ứng dụng trên thiết bị đó. Mã nhận dạng này 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 được cài đặt bằng một trình cài đặt không phải Cửa hàng Google Play.
  • Dịch vụ Google Play không thể xác định tài khoản nhà phát triển của ứng dụng trên Google Play.
  • Ứng dụng được cài đặt trên một thiết bị không có Dịch vụ Google Play.

Không dựa vào giá trị được 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ận dạng nhóm ứng dụng cho một nhóm ứng dụng cụ thể được cài đặt qua Cửa hàng Google Play trên thiết bị:

  • Các nhóm ứng dụng có cùng giá trị mã nhận dạng đã không truy cập vào API mã nhóm ứng dụng trong hơn 13 tháng.
  • Ứng dụng cuối cùng trong 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.

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ận dạng nhóm ứng dụng:

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

Đoạn mã mẫu sau đây minh hoạ cách bạn có thể truy xuất mã nhóm ứng dụng một cách không đồng bộ bằng cách sử dụ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();
    }
});