Lọc phạm vi xem gói trên Android

Khi một ứng dụng nhắm đến Android 11 (API cấp độ 30) trở lên và truy vấn để biết thông tin về các ứng dụng khác được cài đặt trên một thiết bị, theo mặc định hệ thống sẽ lọc thông tin này. Từ góc nhìn của ứng dụng, phạm vi xem gói (package visibility) bị giới hạn làm giảm số lượng ứng dụng có vẻ được cài đặt trên một thiết bị.

Hành vi lọc này giúp giảm thiểu lượng thông tin nhạy cảm tiềm tàng mà ứng dụng của bạn không cần để đáp ứng các trường hợp sử dụng, nhưng ứng dụng vẫn có thể truy cập được. Ngoài ra, phạm vi xem gói được lọc giúp cửa hàng ứng dụng như Google Play đánh giá quyền riêng tư và bảo mật mà ứng dụng của bạn cung cấp cho người dùng. Ví dụ: Google Play coi danh sách các ứng dụng đã cài đặt là dữ liệu cá nhân và nhạy cảm của người dùng.

Phạm vi hiển thị của ứng dụng bị hạn chế ảnh hưởng đến kết quả trả về của các phương thức cung cấp thông tin về các ứng dụng khác, chẳng hạn như queryIntentActivities(), getPackageInfo()getInstalledApplications(). Phạm vi hiển thị bị hạn chế cũng ảnh hưởng đến khả năng tương tác rõ ràng với các ứng dụng khác, như khởi động dịch vụ của một ứng dụng khác.

Một số gói vẫn có khả năng tự động hiển thị. Ứng dụng của bạn luôn có thể thấy các gói này trong truy vấn của mình về các ứng dụng đã được cài khác. Để xem các gói khác, khai báo rằng ứng dụng của bạn cần tăng phạm vi hiển thị gói bằng phần tử <queries>. Trang các trường hợp sử dụng cung cấp nhiều ví dụ về trường hợp tương tác ứng dụng phổ biến.

Trong những trường hợp hiếm hoi khi phần tử <queries> không cung cấp phạm vi xem gói thích đáng, bạn có thể sử dụng quyền QUERY_ALL_PACKAGES. Nếu phát hành ứng dụng trên Google Play, việc ứng dụng của bạn sử dụng quyền này phải được phê duyệt dựa trên chính sách sắp tới.

Tài nguyên khác

Để tìm hiểu thêm về phạm vi hiển thị gói trên Android, xem các tài liệu sau:

Bài đăng trên blog