Các phương tiện vận tải ngày càng phụ thuộc vào khả năng kết nối để quản lý danh sách ngày càng nhiều trường hợp sử dụng theo yêu cầu của cả OEM và chủ sở hữu xe, dẫn đến việc tăng trọng khối dữ liệu và các chi phí liên quan. Sử dụng lựa chọn mạng cho mỗi ứng dụng (PANS) để định tuyến lưu lượng truy cập của các ứng dụng cụ thể trên các mạng mà họ trả phí bởi OEM (Nhà sản xuất thiết bị gốc).
Với PANS, bạn có thể quản lý lượng dữ liệu và chi phí sử dụng dữ liệu cùng một lúc mang đến trải nghiệm mạnh mẽ, an toàn và kết nối trên ô tô. PANS:
- Bao gồm một API mới được thêm vào
ConnectivityManager
có sẵn chỉ áp dụng cho các thiết bị trên ô tô. - Cung cấp API đề xuất Wi-Fi mới (xem API đề xuất Wi-Fi để kết nối Internet) để hỗ trợ khả năng thay đổi linh động của mạng PANS.
- Thu thập các chỉ số hỗ trợ.
- Cung cấp ứng dụng tham chiếu.
Tại sao nên sử dụng PANS?
PANS có thể:
- Tự động cập nhật các liên kết từ ứng dụng đến mạng.
- Quản lý định tuyến cấp ứng dụng mà không cần thay đổi ứng dụng.
- Chỉ những ứng dụng được OEM cho phép mới có thể truy cập vào các mạng OEM đã liên kết.
- Các nhà phát triển ứng dụng không cần thực hiện bất kỳ thay đổi nào để triển khai tính năng này.
- Chỉ số dành cho người dùng theo dõi mức sử dụng dữ liệu từ ứng dụng đến mạng đối với sản phẩm do OEM quản lý mạng.
- Quyền truy cập mạng là an toàn và không thể bị lợi dụng thông qua các trường hợp sử dụng ngoài ý muốn hoặc ứng dụng trái phép.
- Những thay đổi đối với việc liên kết ứng dụng với mạng của PANS sẽ được thông báo cho người dùng.
- Cùng một cấu hình mạng được áp dụng cho tất cả người dùng.
Ưu điểm cốt lõi
PANS cung cấp cho OEMS những ưu điểm cốt lõi sau đây:
- OEM có thể trả tiền cho lưu lượng truy cập mạng thay vì người dùng:
- Có thể cung cấp miễn phí bản cập nhật hệ thống cho người dùng.
- Có thể cho phép người dùng sử dụng miễn phí mạng của các ứng dụng đã chỉ định.
- Người dùng có thể quản lý dữ liệu đo từ xa và các hoạt động phân tích khác mà không tốn phí.
- OEM có thể đảm bảo các ứng dụng quan trọng duy trì kết nối ngay cả khi không có gói dữ liệu do người dùng trả tiền. Ví dụ: các tính năng đảm bảo an toàn như bản đồ, trợ lý (lái xe rảnh tay) và các bản cập nhật hệ thống tiếp tục hoạt động ngay cả khi khi người dùng không có gói dữ liệu.
- PANS cung cấp thêm chi tiết về việc kiểm soát dành riêng cho lưu lượng truy cập mạng định tuyến trong Android. Ví dụ: OEM có thể xác định tối ưu một mạng logic cấu trúc liên kết để định tuyến lưu lượng truy cập cấp ứng dụng.
Hình 1 khung PANS
Triển khai PANS
Để triển khai PANS, một API ConnectivityManager
mới,
Giá trị setOemNetworkPreference
sẽ được cung cấp.
API mới này ánh xạ các ứng dụng với một OemNetworkPreference
.
API này chỉ dành cho các thiết bị trên ô tô và được chú thích là
@SystemApi
với quyền signature
mới.
Hình 2. Triển khai PANS
Lựa chọn ưu tiên mạng
OemNetworkPreference
là một khái niệm trừu tượng trên OEM_PAID
và
OEM_PRIVATE
NetworkCapabilities
ánh xạ ứng dụng theo tên gói
thành lựa chọn ưu tiên về mạng. Lựa chọn ưu tiên về mạng cho phép phân cấp mạng.
Ví dụ: liên kết một ứng dụng với lựa chọn ưu tiên OEM_NETWORK_PREFERENCE_OEM_PAID
dẫn đến mức độ ưu tiên sau đây trong các mạng mặc định được gán cho một ứng dụng: sử dụng
trước tiên là mạng UNMETERED
, nếu không có UNMETERED
, hãy sử dụng
mạng OEM_PAID
và nếu OEM_PAID
không có sẵn, hãy sử dụng hệ thống
mạng mặc định.
OEM_PAID
Được sử dụng chủ yếu cho các ứng dụng có thể định tuyến trên cả hai nền tảng mạng của nhà sản xuất thiết bị gốc (OEM) và không phải của nhà sản xuất thiết bị gốc.OEM_PRIVATE
Được dùng chủ yếu cho các ứng dụng OEM để có quyền truy cập vào dành riêng cho chúng.
/** * If an unmetered network is available, use it. * Otherwise, if a network with the OEM_PAID capability is available, use it. * Otherwise, use the general default network. */ public static final int OEM_NETWORK_PREFERENCE_OEM_PAID = 1; /** * If an unmetered network is available, use it. * Otherwise, if a network with the OEM_PAID capability is available, use it. * Otherwise, the app doesn't get a default network. */ public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_NO_FALLBACK = 2; /** * Use only NET_CAPABILITY_OEM_PAID networks. */ public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_ONLY = 3; /** * Use only NET_CAPABILITY_OEM_PRIVATE networks. */ public static final int OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY = 4;
Gọi các API PANS
Cách sử dụng API PANS:
- Sử dụng
OemNetworkPreferences
để ánh xạ một ứng dụng với lựa chọn ưu tiên mạng. - Gọi
setOemNetworkPreference
bằngOemNetworkPreferences
. - Sử dụng giao diện
Runnable
để theo dõi quá trình hoàn thành API.
Ví dụ:
// Mapping three packages to two network preferences // Packages have a 1:1 mapping to network preferences OemNetworkPreferences pref = new OemNetworkPreferences.Builder() .addNetworkPreference("first.package.name", OEM_NETWORK_PREFERENCE_OEM_PAID) .addNetworkPreference("second.package.name", OEM_NETWORK_PREFERENCE_OEM_PAID) .addNetworkPreference("third.package.name", OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY) .build(); myConnectivityManager.setOemNetworkPreference(pref, myExecutor, myListener);
Những yếu tố nên cân nhắc
Khi bạn triển khai PANS, hãy lưu ý những điểm sau:
- Các lựa chọn ưu tiên về mạng không được duy trì trên các lần khởi động và cần được đặt được áp dụng lại cho mỗi lần khởi động.
- Để tạo lựa chọn ưu tiên cho một ứng dụng, bạn không cần phải cài đặt lựa chọn ưu tiên đó. Do đó, mạng có thể chủ động đặt các lựa chọn ưu tiên cho ứng dụng đã gỡ cài đặt.
- Tại thời điểm bất kỳ, bạn chỉ có thể liên kết một ứng dụng tới một lựa chọn ưu tiên mạng duy nhất.
- Chế độ ưu tiên mạng dùng để đặt mạng mặc định cho một ứng dụng. Đây là
mạng được sử dụng khi ứng dụng không chỉ định(các) mạng nào ứng dụng muốn sử dụng thông qua
một trong những API chuyên biệt. Điều này không chỉ đáp ứng phần lớn các nhu cầu kết nối,
tuỳ chọn này cũng cho phép tiếp tục sử dụng các API chuyên biệt, chẳng hạn như API
NetworkRequest
để không làm hỏng các trường hợp sử dụng hiện có của ứng dụng. Ví dụ: khi một ứng dụng chỉ muốn thực hiện một hoạt động qua mạng không đo lượng dữ liệu, thì PANS sẽ không buộc mạng này dùng một mạng khác.
Định cấu hình mạng
Một mạng có OEM_PAID
hoặc OEM_PRIVATE
phải có khả năng khi sử dụng lựa chọn ưu tiên mạng tương ứng. của Android
cung cấp hỗ trợ cho cấu hình các tính năng của mạng Ethernet và Wi-Fi. Cho
Mạng Ethernet, bạn có thể sử dụng lớp phủ tài nguyên config_ethernet_interfaces
.
Giá trị này được đặt tại thời gian biên dịch.
Đối với Wi-Fi, bạn có thể sử dụng API WifiNetworkSuggestion
với
API Android 12, setOemPaid(Boolean)
và
setOemPrivate(Boolean)
. Bạn có thể thay đổi chế độ này trong thời gian chạy.
Hãy xem các ví dụ sau:
- Lớp phủ tài nguyên có tên
config_ethernet_interfaces
chỉ định:- Tên giao diện cần định cấu hình.
- Giá trị
NetworkCapabilities
mong muốn.<!-- 11 NET_CAPABILITY_NOT_METERED 12 NET_CAPABILITY_INTERNET 14 NET_CAPABILITY_TRUSTED 15 NET_CAPABILITY_NOT_VPN 22 NET_CAPABILITY_OEM_PAID || 26 NET_CAPABILITY_OEM_PRIVATE --> <string-array translatable="false" name="config_ethernet_interfaces"> <item>eth0;11,12,14,15,22;;</item></string-array>
- Bạn có thể thay đổi
WiFiNetworkSuggestion
này một cách linh động:ArrayList<WifiNetworkSuggestion> list = new ArrayList<>(); list.add(new WifiNetworkSuggestion.Builder() .setSsid(WifiInfo.sanitizeSsid(ssid)) .setOemPrivate(true) .build()); mWifiManager.addNetworkSuggestions(list);
Hạn chế quyền truy cập vào mạng PANS
Gắn thẻ mạng bằng OEM_PAID
hoặc OEM_PRIVATE
các chức năng sẽ đánh dấu mạng đó là mạng bị hạn chế. Mạng bị hạn chế
chỉ có thể sử dụng bởi những ứng dụng có
Quyền CONNECTIVITY_USE_RESTRICTED_NETWORKS
do OEM kiểm soát.
Các ứng dụng được cấp quyền này có thể sử dụng mạng bị hạn chế miễn là các ứng dụng đó yêu cầu rõ ràng chúng. Tuy nhiên, các ứng dụng này sẽ không dùng mạng bị hạn chế làm mạng mặc định. Chiến dịch Quảng cáo ứng dụng được ánh xạ qua PANS có thể đặt các mạng OEM bị hạn chế làm mặc định và sẽ không cần quyền sử dụng mạng bị hạn chế. Khi một ứng dụng như vậy có chế độ hạn chế Mạng OEM do PANS chỉ định làm mạng mặc định, mạng này cũng có khả năng yêu cầu rõ ràng mạng OEM đã nêu nếu ứng dụng chọn làm như vậy.
Xem lại ứng dụng tham chiếu
Đã cung cấp một ứng dụng tham chiếu (bao gồm cả mã) có tên NetworkPreferenceApp
trong các bản dựng ô tô gỡ lỗi người dùng và trình bày cách:
- Sử dụng chỉ số PANS.
- Đặt chính sách PANS.
- Đặt chính sách mặc định cho thiết bị.
- Xoá một chính sách.
- Áp dụng một chính sách khi khởi động.
- Dùng Driver Distraction API (xem Nguyên tắc để mất sự phân tâm của người lái xe).
- Tự động cập nhật Wi-Fi bằng
OEM_PAID
vàOEM_PRIVATE
.
Hình 3. Ứng dụng tham chiếu
Chỉ số
Để tạo điều kiện minh bạch về việc sử dụng dữ liệu, các chỉ số được thu thập và lập ra
liên quan đến lượng dữ liệu được truyền qua
Liên kết mạng OEM_PAID
và OEM_PRIVATE
.
Khắc phục sự cố
Hầu hết các điều kiện khắc phục sự cố phát sinh từ việc một ứng dụng dùng sai mạng (không có kết nối mạng) hoặc sử dụng dữ liệu quá mức. Cách bật chế độ giải quyết nhanh:
- Kết nối
dumpsys
bao gồm danh sách những kết nối đang hoạt động mạng mặc định cho mỗi ứng dụng và ứng dụng liên kết với các mạng đó (được ánh xạ từ PANS). dumpsys
Netd bao gồm IP UID và các quy tắc tường lửa.- Netstats
dumpsys
bao gồm các chỉ số PANS cho mỗi ứng dụng. Ví dụ: ứng dụng nào đã dùng mạng OEM nào.
Bạn có thể tạo tất cả dữ liệu dumpsys
bằng cách tạo báo cáo lỗi Android.