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ị nhất định, 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 thuộc sở hữu của tổ chức mình. Dịch vụ Google Play cung cấp một lựa 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ận dạng 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 mà một mã nhận dạng cụ thể được liên kết, hãy gọi getScope().

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

Đối với những ứng dụng do Cửa hàng Google Play cài đặt, API Nhận dạng nhóm ứng dụng sẽ trả về một mã nhận dạng được giới hạn trong nhóm ứng dụng được xuất bản 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 2 ứng dụng trong tài khoản nhà phát triển của mình 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 dùng chung cùng một mã nhóm ứng dụng trên thiết bị đó. Mã nhận dạng này vẫn giữ nguyên 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óm ứng dụng sẽ trả về một mã nhận dạng riêng biệ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ởi một trình cài đặt không phải là Cửa hàng Google Play.
  • Dịch vụ Google Play không xác định được 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.

Đừ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 đều 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 từ Cửa hàng Google Play trên một thiết bị:

  • Các nhóm ứng dụng dùng chung cùng một 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ị nhận dạng mỗi khi cần.

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

Đoạn mã sau đây cho thấy một ví dụ về tệp build.gradle 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ận dạng nhóm ứng dụng không đồng bộ bằng Tasks API 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();
    }
});