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 hoạt động trên một nhóm ứng dụng thuộc sở hữu của tổ chức. 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óm ứng dụng có thể có một trong các phạm vi được xác định sau đây. Để 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 dành cho nhà phát triển trên Google Play

Đối với các ứng dụng được cài đặt qua Cửa hàng Google Play, 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 Google Play của mình 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ã 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ó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 đượ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 Google Play của một ứng dụng.
  • Ứ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, mã 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 một thiết bị đều có thể được đặt lại:

  • API mã nhóm ứng dụng không được các nhóm ứng dụng dùng chung một giá trị mã nhận dạng truy cập 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 phải 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 của bạn

Đ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.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 không đồng bộ bằng cách sử dụng API Tasks trong Dịch vụ 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();
    }
});

Để biết thêm thông tin về định dạng UUID, hãy xem bài viết Giá trị nhận dạng duy nhất.