Quyền chỉ được sử dụng trong trình xử lý mặc định

Một số chức năng chính của thiết bị, như đọc nhật ký cuộc gọi và gửi tin nhắn SMS, tùy thuộc vào quyền truy cập thông tin nhạy cảm của người dùng. Để bảo vệ quyền riêng tư và cho người dùng nhiều quyền kiểm soát hơn đối với thông tin đã cung cấp cho các ứng dụng trên thiết bị của họ, Google Play hạn chế quyền truy cập của ứng dụng vào các nhóm quyền liên quan đến cuộc gọi và tin nhắn.

Nếu bạn đăng ứng dụng của mình trên Cửa hàng Google Play và muốn truy cập thông tin nhạy cảm của người dùng liên quan đến nhật ký cuộc gọi và tin nhắn SMS, ứng dụng của bạn cần được đăng ký làm trình xử lý mặc định của người dùng cho chức năng chính của thiết bị liên quan đến quyền đó, trừ trường hợp ứng dụng của bạn đáp ứng một trong các trường hợp ngoại lệ có trong Trung tâm trợ giúp của Play Console. Ví dụ, để truy cập các quyền liên quan đến cuộc gọi, ứng dụng của bạn cần được đăng ký là trình xử lý Cuộc gọi hoặc Trợ lý mặc định của người dùng trừ khi ứng dụng đáp ứng trường hợp ngoại lệ.

Hướng dẫn này cung cấp thông tin tổng quan ngắn gọn về cách người dùng truy cập trình xử lý mặc định trên các thiết bị chạy Android. Sau đó, hướng dẫn sẽ xem xét các yêu cầu mà một ứng dụng phải đáp ứng trước khi đủ điều kiện trở thành trình xử lý mặc định. Cuối cùng, hướng dẫn này sẽ giúp bạn thực hiện quy trình nhận chấp thuận của người dùng để ứng dụng trở thành trình xử lý mặc định.

Để tìm hiểu thêm về các trình xử lý mặc định cũng như cách xử lý quyền trong một ứng dụng có sẵn trên Cửa hàng Play, vui lòng xem Hướng dẫn chính sách về Quyền.

Xem và thay đổi thiết lập các trình xử lý mặc định

Android bao gồm các trình xử lý mặc định cho một số trường hợp sử dụng chính, chẳng hạn như gọi điện thoại, gửi tin nhắn SMS và cung cấp tính năng công nghệ hỗ trợ.

Ứng dụng Cài đặt trên Android bao gồm một màn hình hiển thị cho người dùng biết những ứng dụng nào hiện đang đóng vai trò là trình xử lý mặc định cho các chức năng chính của thiết bị, như trong Hình 1. Từ màn hình này, người dùng có thể thay đổi trình xử lý mặc định cho một chức năng nhất định, như trong Hình 2.

Ảnh chụp màn hình về cài đặt ứng dụng mặc định
Hình 1. Màn hình cài đặt hệ thống hiển thị danh sách các trình xử lý mặc định trên thiết bị
Ảnh chụp màn hình về cài đặt ứng dụng gửi tin nhắn SMS mặc định
Hình 2. Màn hình cài đặt hệ thống cho biết cách thay đổi trình xử lý tin nhắn SMS mặc định

Tuân thủ các yêu cầu về trình xử lý mặc định

Với thông tin nhạy cảm của người dùng mà ứng dụng truy cập khi đóng vai trò là trình xử lý mặc định, ứng dụng của bạn không thể trở thành trình xử lý mặc định trừ khi đáp ứng các yêu cầu về danh sách và chức năng chính sau đây trên Cửa hàng Play:

  • Ứng dụng của bạn phải có khả năng thực hiện chức năng của một trình xử lý mặc định. Ví dụ, một trình gửi tin nhắn SMS mặc định phải có thể gửi tin nhắn văn bản.
  • Ứng dụng của bạn phải cung cấp chính sách quyền riêng tư.
  • Ứng dụng phải nêu rõ chức năng chính trong phần mô tả ứng dụng trên Cửa hàng Play. Ví dụ, một trình xử lý Gọi điện mặc định phải mô tả các tính năng liên quan đến gọi điện trong phần mô tả.
  • Ứng dụng của bạn phải khai báo quyền phù hợp với trường hợp sử dụng. Để biết thêm thông tin chi tiết về những quyền mà bạn có thể khai báo với tư cách trình xử lý xác định, xem hướng dẫn sử dụng nhóm quyền gửi tin nhắn SMS hoặc nhật ký cuộc gọi tại Trung tâm trợ giúp của Play Console.
  • Ứng dụng của bạn phải yêu cầu trở thành trình xử lý mặc định trước khi yêu cầu các quyền liên quan đến trình xử lý đó. Ví dụ, một ứng dụng phải yêu cầu trở thành trình xử lý tin nhắn SMS mặc định trước khi yêu cầu quyền READ_SMS.

Sau khi đảm bảo ứng dụng tuân theo từng yêu cầu cần thiết để trở thành trình xử lý mặc định, bạn có thể thêm logic để hiển thị hộp thoại như trong Hình 3. Hộp thoại này yêu cầu người dùng đặt ứng dụng làm trình xử lý mặc định cho trường hợp sử dụng riêng.

Mã ví dụ sau cho thấy logic cần thiết để hiển thị lời nhắc yêu cầu người dùng thay đổi trình xử lý tin nhắn SMS mặc định của thiết bị:

Kotlin

val setSmsAppIntent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName)
startActivityForResult(setSmsAppIntent, your-result-code)

Java

Intent setSmsAppIntent =
        new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,
        getPackageName());
startActivityForResult(setSmsAppIntent, your-result-code);
Ảnh chụp màn hình hiển thị hộp thoại giao diện người dùng
Hình 3. Nhắc hỏi người dùng xem họ có muốn thay đổi trình xử lý tin nhắn SMS mặc định của thiết bị hay không