Araçlar gittikçe büyüyen bir listeyi yönetmek için bağlantıya gittikçe daha fazla başvuruyor. Bu da Android'in hem OEM'lerin hem de araç sahiplerinin talep ettiği kullanım alanlarıyla veri ayak izi ve ilişkili maliyetler Uygulama başına ağ seçimini kullanın (PANS) özelliği ile ödeme yapılan ağlardaki belirtilen uygulamaların trafiğini yönlendirme satın alabilirsiniz.
PANS ile, veri kullanım hacmini ve maliyetini aynı anda yönetebilirsiniz. güçlü, güvenli ve bağlantılı bir araç deneyimi sunmayı amaçlar. Kalıcı Hesap Numarası (PAN):
- Kullanılabilir
ConnectivityManager
API'sine eklenen yeni bir API'den oluşur yalnızca otomotiv cihazlarında kullanılabilir. - Güncellenmiş bir Wi-Fi Öneri API'si sağlar (bkz. İnternet bağlantısı için kablosuz bağlantı öneri API'si) dinamik olarak değişen PANS ağ özellikleri için destek içerir.
- Destekleyici metrikleri toplar.
- Referans uygulama sağlar.
Neden PANS?
PAN'ler şunları yapabilir:
- Uygulamadan ağa eşlemeleri dinamik olarak güncelleyin.
- Uygulamalarda değişiklik yapmadan uygulama düzeyinde yönlendirmeyi yönetin.
- Eşlenen OEM ağlarına yalnızca OEM tarafından izin verilen uygulamalar erişebilir.
- Uygulama geliştiricilerin bu özelliği uygulamak için herhangi bir değişiklik yapması gerekmez.
- Kullanıcıya yönelik metrikler, yönetilen OEM uygulamaları için uygulamadan ağa veri kullanımını takip eder ağlar.
- Ağ erişimi güvenlidir ve kasıtsız kullanım alanları ya da e-postalar yoluyla izin vermez.
- PANS uygulamalardan ağa eşlemelerinde yapılan değişiklikler kullanıcılara bildirilir.
- Tüm kullanıcılar için aynı ağ yapılandırması uygulanır.
Temel avantajları
PANS, OEM'lere şu temel avantajları sağlar:
- OEM'ler, ağ trafiği için kullanıcılar yerine ödeme yapabilir:
- Sistem güncellemeleri kullanıcıya ücretsiz olarak sağlanabilir.
- Belirtilen uygulamaların ağ kullanımı, kullanıcıya ücretsiz olarak sağlanabilir.
- Telemetri ve diğer analizler, kullanıcıya ücretsiz olarak yönetilebilir.
- OEM'ler, önemli uygulamaların bir bağlantı olmadan bile bağlı kalmasını sağlayabilir. (kullanıcı tarafından ödenen veri planı) Örneğin, Haritalar, Asistan gibi güvenlik açısından kritik özellikler (eller serbest sürüş) ve sistem güncellemeleri, bu cihazlarda bile çalışmaya devam eder. Kullanıcının veri planı yoksa
- PANS, ağ trafiğine özel ek kontrol ayrıntı düzeyi sağlar yönlendirmelerine başladı. Örneğin, OEM'ler en iyi şekilde mantıklı bir ağ en iyi uygulamaları paylaşacağız.
1. Şekil. PANS çerçevesi
PAN'leri uygulama
Yeni bir ConnectivityManager
API olan PANS'yi uygulamak için
setOemNetworkPreference
sağlandı.
Bu yeni API, uygulamaları bir OemNetworkPreference
ile eşler.
Bu API yalnızca otomotiv cihazlarında kullanılabilir ve
Yeni signature
izniyle @SystemApi
.
Şekil 2. PAN'leri uygulama
OemAğ Tercihi
OemNetworkPreference
, OEM_PAID
ile ilgili bir soyutlama ve
Paket adına göre OEM_PRIVATE
NetworkCapabilities
eşleme uygulaması
ağ tercihine ekleyebilirsiniz. Ağ tercihleri, ağ hiyerarşilerine izin verir.
Örneğin, bir uygulamayı OEM_NETWORK_PREFERENCE_OEM_PAID
tercihiyle eşleme
bir uygulamaya atanmış varsayılan ağların aşağıdaki önceliği olur:
Önce UNMETERED
ağı, UNMETERED
kullanılamıyorsa
OEM_PAID
ağını ve OEM_PAID
kullanılamıyorsa sistemi kullanın
varsayılan ağdır.
OEM_PAID
Öncelikle her iki cihazda da yönlendirilebilen uygulamalar için kullanılır OEM ve OEM olmayan ağlar.OEM_PRIVATE
Özellikle OEM uygulamaları için bir bir iletişim ağı oluşturabilirsiniz.
/** * 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;
PANS API'lerini çağırın
PANS API'lerini kullanmak için:
- Bir uygulamayı ağ tercihiyle eşlemek için
OemNetworkPreferences
düğmesini kullanın. OemNetworkPreferences
numaralı telefonu kullanaraksetOemNetworkPreference
adlı kişiyi arayın nesnesini tanımlayın.- API'nin tamamlandığını dinlemek için
Runnable
arayüzünü kullanın.
Örnek:
// 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);
Dikkat edilmesi gereken noktalar
PAN'ları uygularken aşağıdaki noktaları göz önünde bulundurun:
- Ağ tercihleri, başlatmalar genelinde kalıcı değildir ve tekrar uygulanır.
- Bir uygulamayla ilgili tercih oluşturmak için uygulamanın yüklenmesi gerekmez. Bu nedenle, ağ Kaldırılan uygulamalarla ilgili tercihler proaktif olarak ayarlanabilir.
- Bir uygulama herhangi bir zamanda yalnızca tek bir ağ tercihine eşlenebilir.
- Ağ tercihleri, bir uygulamanın varsayılan ağını ayarlamak için kullanılır. Bu
bir uygulama hangi ağları kullanmak istediğini belirtmediğinde kullanılan ağ
olduğunu öğreneceğiz. Bu, bağlantı ihtiyaçlarının büyük çoğunluğunu sağlamakla kalmaz, aynı zamanda
ayrıca
NetworkRequest
API gibi özel API'lerin sürekli kullanımına da olanak tanır. Bu sayede mevcut uygulama kullanım alanlarını bozmadan devam edebilir. Örneğin, bir uygulama yalnızca bir sınırsız bir ağ üzerinde işlem yaparsanız PANS, onu başka bir ağ kullanmaya zorlamaz.
Ağ yapılandırma
OEM_PAID
veya OEM_PRIVATE
bulunan bir ağ
ilgili ağ tercihi kullanılırken tüm özellikler kullanılabilir olmalıdır. Android
Ethernet ve kablosuz ağlara yönelik özelliklerin yapılandırılması için destek sunar. Örneğin,
Ethernet ağları için kaynak yer paylaşımı kullanabilirsiniz, config_ethernet_interfaces
.
Bu, derleme sırasında ayarlanır.
WifiNetworkSuggestion
API, kablosuz bağlantıda yeni
Android 12 API'leri, setOemPaid(Boolean)
ve
setOemPrivate(Boolean)
. Bu, çalışma zamanında değiştirilebilir.
Aşağıdaki örnekleri göz önünde bulundurun:
config_ethernet_interfaces
adlı bir kaynak yer paylaşımı şunları belirtir:- Yapılandırılacak arayüzün adı.
- İstenen
NetworkCapabilities
değerleri.<!-- 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>
- Bu
WiFiNetworkSuggestion
dinamik olarak değiştirilebilir:ArrayList<WifiNetworkSuggestion> list = new ArrayList<>(); list.add(new WifiNetworkSuggestion.Builder() .setSsid(WifiInfo.sanitizeSsid(ssid)) .setOemPrivate(true) .build()); mWifiManager.addNetworkSuggestions(list);
PANS ağlarına erişimi kısıtla
Bir ağı OEM_PAID
veya OEM_PRIVATE
ile etiketleme
özellikleri, bu ağı kısıtlı ağ olarak işaretler. Kısıtlanmış ağlar
yalnızca
OEM'ler tarafından kontrol edilen CONNECTIVITY_USE_RESTRICTED_NETWORKS
izni.
Bu izne sahip uygulamalar, uygulamaların açıkça istemesi şartıyla kısıtlanmış ağları kullanabilir yapın. Ancak bu uygulamalar, kısıtlanmış ağları varsayılan olarak kullanmaz. Uygulamalar PANS aracılığıyla eşlenen kısıtlanmış OEM ağları varsayılan olarak ayarlanmış olabilir ve kısıtlı ağ iznine sahip olmanız gerekir. Bu tür bir uygulamada PANS tarafından varsayılan ağ olarak atanan OEM ağı; Uygulama istenirse söz konusu OEM ağını açıkça talep etme.
Referans uygulamayı inceleyin
NetworkPreferenceApp
adlı bir referans uygulama (kod dahil) sağlanmış
kullanıcı hata ayıklama otomotiv derlemelerinde aşağıdakilerin nasıl yapıldığını gösterir:
- PANS metriklerini tüket.
- PANS politikası belirleyin.
- Cihaz için varsayılan bir politika ayarlayın.
- Politikayı temizleyin.
- Açılışta politika uygula.
- Driver Distraction API'yi kullanma (Sürücü Dikkatini Dağıtma Kuralları'nı inceleyin).
- Kablosuz ağı
OEM_PAID
veOEM_PRIVATE
ile dinamik olarak güncelleyin.
Şekil 3. Referans uygulaması
Metrikler
Veri kullanımına dair şeffaflığı kolaylaştırmak için metrikler, ölçüm ve veri işleme
miktarına bağlı olarak mevcut taleplerin
OEM_PAID
ve OEM_PRIVATE
ağ eşlemeleri.
Sorun giderme
Çoğu sorun giderme koşulu, yanlış ağı kullanan bir uygulamadan kaynaklanır (ağ bağlantısı yok) veya veri aşımı olması anlamına gelir. Hızlı çözümleri etkinleştirmek için:
dumpsys
bağlantısı, etkin olanların listesini içerir Her uygulama için varsayılan ağlar ve bunlarla ilişkilendirilen uygulamalar (PANS'den eşlenir).- Net
dumpsys
, UID IP'si ve güvenlik duvarı kurallarını içerir. - Netstats
dumpsys
, uygulama başına PANS metriklerini içerir. Örneğin, hangi uygulamaların hangi OEM ağını kullandığı.
Tüm dumpsys
verilerine Android hata raporu oluşturarak erişebilirsiniz.