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, tuỳ 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 thêm quyền kiểm soát đối với thông tin họ cung cấp cho các ứng dụng trên thiết bị, 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 phân phối ứng dụng trên Cửa hàng Google Play và muốn truy cập vào 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 phải được đăng ký làm trình xử lý mặc định của người dùng cho chức năng cốt lõi 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ệ nêu trong Trung tâm trợ giúp của Play Console. Ví dụ: để truy cập vào các quyền liên quan đến cuộc gọi, ứng dụng của bạn phải được đăng ký làm trình xử lý Cuộc gọi hoặc Trợ lý mặc định của người dùng trừ phi ứng dụng đáp ứng trường hợp ngoại lệ.

Hướng dẫn này đưa ra 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 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 sự 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 tập hợp trình xử lý mặc định

Android cho phép người dùng thiết lập trình xử lý mặc định cho một số trường hợp sử dụng cốt lõi, chẳng hạn như gọi điện thoại, gửi tin nhắn SMS hay cung cấp các chức 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 cho người dùng thấy những ứng dụng nào đang là trình xử lý mặc định cho các chức năng cốt lõi của thiết bị, như thể hiện trong hình 1. Trên 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ư thể hiện trong hình 2.

Ảnh chụp màn hình về chế độ cài đặt ứng dụng mặc định
Hình 1. Màn hình cài đặt hệ thống cho thấy danh sách trình xử lý mặc định trên thiết bị.
Ảnh chụp màn hình về chế độ 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 thấy 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ừ phi đáp ứng các yêu cầu sau đây về chức năng cốt lõi và trang thông tin 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ụ: trình gửi tin nhắn SMS mặc định phải gửi được 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 cốt lõi 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, hãy xem hướng dẫn về 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 đề nghị người dùng đặt ứng dụng làm trình xử lý mặc định cho một trường hợp sử dụng cụ thể.

Ảnh chụp màn hình cho thấy một hộp thoại trên 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.

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