Kendaraan semakin bergantung pada konektivitas untuk mengelola daftar kasus penggunaan yang diminta oleh OEM dan pemilik kendaraan, yang mengakibatkan peningkatan jejak data dan biaya terkait. Gunakan fitur pemilihan jaringan per aplikasi (PANS) untuk merutekan lalu lintas aplikasi tertentu pada jaringan yang dibayar oleh OEM.
Dengan PANS, Anda dapat mengatur volume dan biaya penggunaan data sekaligus memberikan pengalaman mobil yang kuat, aman, dan terhubung. PANS:
- Terdiri dari API baru yang ditambahkan ke
ConnectivityManager
yang hanya tersedia untuk perangkat otomotif. - Menyediakan API saran Wi-Fi yang diperbarui (lihat API saran Wi-Fi untuk konektivitas internet ) untuk menyertakan dukungan bagi kemampuan jaringan PANS yang berubah secara dinamis.
- Mengumpulkan metrik pendukung.
- Menyediakan aplikasi referensi.
Mengapa PAN?
PANS dapat:
- Perbarui pemetaan aplikasi-ke-jaringan secara dinamis.
- Kelola perutean tingkat aplikasi tanpa membuat perubahan pada aplikasi.
- Hanya aplikasi yang diizinkan OEM yang dapat mengakses jaringan OEM yang dipetakan.
- Pengembang aplikasi tidak perlu melakukan perubahan apa pun untuk mengimplementasikan fitur ini.
- Metrik yang dilihat pengguna melacak penggunaan data aplikasi-ke-jaringan untuk jaringan yang dikelola OEM.
- Akses jaringan aman dan tidak dapat disalahgunakan melalui kasus penggunaan yang tidak diinginkan atau aplikasi yang tidak sah.
- Perubahan pada pemetaan aplikasi-ke-jaringan PANS dikomunikasikan kepada pengguna.
- Konfigurasi jaringan yang sama diterapkan di semua pengguna.
Keuntungan inti
PANS memberi OEM keunggulan inti berikut:
- OEM dapat membayar lalu lintas jaringan, bukan pengguna:
- Pembaruan sistem dapat diberikan tanpa biaya kepada pengguna.
- Penggunaan jaringan atas aplikasi tertentu dapat diberikan tanpa biaya kepada pengguna.
- Telemetri dan analitik lainnya dapat dikelola tanpa biaya bagi pengguna.
- OEM dapat memastikan aplikasi penting tetap terhubung bahkan tanpa paket data berbayar pengguna. Misalnya, fitur-fitur penting keselamatan seperti peta, asisten (mengemudi secara hands-free), dan pembaruan sistem terus berfungsi bahkan ketika pengguna tidak memiliki paket data.
- PANS memberikan perincian kontrol tambahan khusus untuk perutean lalu lintas jaringan di Android. Misalnya, OEM dapat secara optimal menentukan topologi jaringan logis untuk perutean lalu lintas tingkat aplikasi.
Gambar 1 . kerangka PANS
Menerapkan PANS
Untuk mengimplementasikan PANS, ConnectivityManager
API baru, setOemNetworkPreference
, disediakan. API baru ini memetakan aplikasi ke OemNetworkPreference
. API ini hanya tersedia untuk perangkat otomotif dan dianotasi sebagai @SystemApi
dengan izin signature
baru.
Gambar 2. Implementasi PANS
Preferensi Jaringan OEM
OemNetworkPreference
adalah abstraksi atas aplikasi pemetaan OEM_PAID
dan OEM_PRIVATE
NetworkCapabilities
berdasarkan nama paket ke preferensi jaringan . Preferensi jaringan memungkinkan adanya hierarki jaringan. Misalnya, memetakan aplikasi ke preferensi OEM_NETWORK_PREFERENCE_OEM_PAID
akan menghasilkan prioritas jaringan default berikut yang ditetapkan ke aplikasi: gunakan jaringan UNMETERED
terlebih dahulu, jika UNMETERED
tidak tersedia gunakan jaringan OEM_PAID
, dan jika OEM_PAID
tidak tersedia, gunakan default sistem jaringan.
-
OEM_PAID
Digunakan terutama untuk aplikasi yang dapat dirutekan pada jaringan OEM dan non-OEM. -
OEM_PRIVATE
Digunakan terutama untuk aplikasi OEM untuk mendapatkan akses ke jaringan yang didedikasikan untuk aplikasi tersebut.
/** * 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;
Panggil API PANS
Untuk menggunakan API PANS:
- Gunakan
OemNetworkPreferences
untuk memetakan aplikasi ke preferensi jaringan. - Panggil
setOemNetworkPreference
dengan objekOemNetworkPreferences
. - Gunakan antarmuka
Runnable
untuk mendengarkan penyelesaian API.
Misalnya:
// 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);
Pertimbangan
Saat Anda menerapkan PANS, ingatlah hal-hal berikut:
- Preferensi jaringan tidak dipertahankan di seluruh boot dan perlu diterapkan kembali pada setiap boot.
- Untuk membuat preferensi suatu aplikasi, aplikasi tersebut tidak perlu diinstal. Oleh karena itu, preferensi jaringan untuk aplikasi yang dicopot pemasangannya dapat diatur secara proaktif.
- Pada waktu tertentu, suatu aplikasi hanya dapat dipetakan ke satu preferensi jaringan.
- Preferensi jaringan digunakan untuk mengatur jaringan default suatu aplikasi. Ini adalah jaringan yang digunakan ketika aplikasi belum menentukan jaringan mana yang ingin digunakan melalui salah satu API khusus. Hal ini tidak hanya mencakup sebagian besar kebutuhan konektivitas, tetapi juga memungkinkan penggunaan API khusus secara berkelanjutan seperti
NetworkRequest
API agar tidak merusak kasus penggunaan aplikasi yang ada. Misalnya, ketika suatu aplikasi hanya ingin melakukan operasi melalui jaringan yang tidak diukur, PANS tidak akan memaksanya untuk menggunakan jaringan lain.
Konfigurasikan jaringan
Jaringan dengan kemampuan OEM_PAID
atau OEM_PRIVATE
harus tersedia saat menggunakan preferensi jaringan yang sesuai. Android menyediakan dukungan untuk konfigurasi kemampuan jaringan Ethernet dan Wi-Fi. Untuk jaringan Ethernet, Anda dapat menggunakan resource overlay, config_ethernet_interfaces
. Ini diatur pada waktu kompilasi.
Untuk Wi-Fi, WifiNetworkSuggestion
API dapat digunakan dengan API Android 12 baru, setOemPaid(Boolean)
dan setOemPrivate(Boolean)
. Ini dapat diubah saat runtime.
Perhatikan contoh berikut:
- Hamparan sumber daya bernama
config_ethernet_interfaces
menentukan:- Nama antarmuka yang akan dikonfigurasi.
- Nilai
NetworkCapabilities
yang diinginkan.<!-- 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>
-
WiFiNetworkSuggestion
ini dapat diubah secara dinamis:ArrayList<WifiNetworkSuggestion> list = new ArrayList<>(); list.add(new WifiNetworkSuggestion.Builder() .setSsid(WifiInfo.sanitizeSsid(ssid)) .setOemPrivate(true) .build()); mWifiManager.addNetworkSuggestions(list);
Batasi akses ke jaringan PANS
Memberi tag pada jaringan dengan kemampuan OEM_PAID
atau OEM_PRIVATE
menandai jaringan tersebut sebagai jaringan terbatas . Jaringan yang dibatasi hanya dapat digunakan oleh aplikasi yang memiliki izin CONNECTIVITY_USE_RESTRICTED_NETWORKS
, yang dikontrol oleh OEM.
Aplikasi dengan izin ini dapat menggunakan jaringan terbatas asalkan aplikasi memintanya secara eksplisit . Namun, aplikasi ini tidak akan mendapatkan jaringan terbatas sebagai defaultnya. Aplikasi yang dipetakan melalui PANS dapat menetapkan jaringan OEM terbatas sebagai defaultnya dan tidak memerlukan izin jaringan terbatas untuk menggunakannya. Jika aplikasi tersebut memiliki jaringan OEM terbatas yang ditetapkan sebagai jaringan defaultnya oleh PANS, aplikasi tersebut juga memiliki kemampuan untuk secara eksplisit meminta jaringan OEM tersebut jika aplikasi memilih untuk melakukannya.
Tinjau aplikasi referensi
Aplikasi referensi (termasuk kode) bernama NetworkPreferenceApp
disediakan dalam build otomotif debug pengguna dan menunjukkan cara:
- Gunakan metrik PANS.
- Tetapkan kebijakan PANS.
- Tetapkan kebijakan default untuk perangkat.
- Hapus kebijakan.
- Terapkan kebijakan saat boot.
- Gunakan API Gangguan Pengemudi (lihat Pedoman Gangguan Pengemudi ).
- Perbarui Wi-Fi secara dinamis dengan
OEM_PAID
danOEM_PRIVATE
.
Gambar 3. Aplikasi referensi
Metrik
Untuk memfasilitasi transparansi seputar penggunaan data, metrik dikumpulkan dan disediakan mengenai jumlah data yang dikirimkan melalui pemetaan jaringan OEM_PAID
dan OEM_PRIVATE
.
Penyelesaian masalah
Sebagian besar kondisi pemecahan masalah muncul karena aplikasi menggunakan jaringan yang salah (tidak ada konektivitas jaringan) atau kelebihan data. Untuk mengaktifkan resolusi cepat:
-
dumpsys
konektivitas mencakup daftar jaringan default per aplikasi yang aktif dan aplikasi terkaitnya (dipetakan dari PANS). - Netd
dumpsys
menyertakan IP UID dan aturan firewall. - Netstats
dumpsys
menyertakan metrik PANS per aplikasi. Misalnya, aplikasi mana yang menggunakan jaringan OEM mana.
Semua data dumpsys
tersedia dengan membuat laporan bug Android.