اختيار الشبكة لكل تطبيق (PANS)

تعتمد المركبات بشكل متزايد على إمكانية الاتصال لإدارة القائمة المتنامية حالات الاستخدام المطلوبة من قِبل كل من المصنّعين الأصليين للمركبات ومالكيها، مما يؤدي إلى زيادة البصمة البيانات والتكاليف المرتبطة بها. استخدام خيار اختيار الشبكة لكل تطبيق (PANS) لتوجيه حركة بيانات تطبيقات محددة على الشبكات المدفوعة المصنّع الأصلي للجهاز.

ومن خلال نظام PANS، يمكنك إدارة حجم استخدام البيانات وتكلفته في الوقت نفسه لتوفير تجربة سيارة قوية وآمنة ومترابطة. رقم PAN:

  • تتكوّن من واجهة برمجة تطبيقات جديدة تمت إضافتها إلى ConnectivityManager لأجهزة السيارات فقط.
  • لتوفير واجهة برمجة تطبيقات محدَّثة لاقتراحات Wi-Fi (يُرجى الاطّلاع على واجهة برمجة تطبيقات اقتراح Wi-Fi للاتصال بالإنترنت) لتشمل الدعم لإمكانات شبكة PANS المتغيرة ديناميكيًا.
  • جمع المقاييس الداعمة.
  • توفّر تطبيقًا مرجعيًا.

لماذا رقم PANS؟

يمكن لنظام PANS أن:

  • تحديث تعيينات التطبيقات إلى الشبكة ديناميكيًا.
  • يمكنك إدارة التوجيه على مستوى التطبيقات بدون إجراء تغييرات على التطبيقات.
  • يمكن فقط للتطبيقات المسموح بها من قِبل المصنّعين الأصليين الوصول إلى شبكات المصنّعين الأصليين للجهاز التي تم تعيينها.
  • لا يحتاج مطوّرو التطبيقات إلى إجراء أي تغييرات لتنفيذ هذه الميزة.
  • تتتبّع المقاييس الموجَّهة للمستخدمين استخدام البيانات من التطبيقات إلى الشبكة التي يديرها المصنّع الأصلي للجهاز. جديدة.
  • يكون الوصول إلى الشبكة آمنًا ولا يمكن إساءة استخدامه من خلال حالات الاستخدام غير المقصودة أو التطبيقات غير المصرح بها.
  • يتم إبلاغ المستخدمين بالتغييرات التي تطرأ على تعيينات التطبيقات إلى الشبكة لنظام PANS.
  • يتم تطبيق إعدادات الشبكة نفسها على جميع المستخدمين.

المزايا الأساسية

ويوفر رقم PANS المزايا الأساسية التالية للمصنّعين الأصليين للأجهزة:

  1. يمكن للمصنّعين الأصليين للأجهزة الدفع مقابل حركة بيانات الشبكة بدلاً من المستخدمين:
    • يمكن تقديم تحديثات النظام بدون تحميل المستخدم أي تكلفة.
    • يمكن توفير استخدام الشبكة لتطبيقات معيّنة بدون أي تكلفة على المستخدم.
    • يمكن إدارة بيانات القياس عن بُعد والإحصاءات الأخرى بدون أي تكلفة على المستخدم.
  2. يمكن للمصنّعين الأصليين للأجهزة ضمان بقاء التطبيقات المهمة مرتبطة حتى بدون خطة البيانات المدفوعة من قبل المستخدم. على سبيل المثال، الميزات المهمة للسلامة، مثل الخرائط و"مساعد Google" (القيادة بدون لمس الجهاز)، وستستمر تحديثات النظام في العمل عندما لا يكون لدى المستخدم خطة بيانات.
  3. ويوفر نظام PANS دقة إضافية للتحكم في حركة بيانات الشبكة التوجيه في Android. على سبيل المثال، يمكن للمصنّعين الأصليين للأجهزة تحديد شبكة منطقية على النحو الأمثل طوبولوجيا توجيه الزيارات على مستوى التطبيق.

الشكل 1. إطار عمل شبكة PANS

تطبيق رقم PANS

لتنفيذ PANS، وهي واجهة برمجة تطبيقات ConnectivityManager جديدة، يتوفّر setOemNetworkPreference. تربط واجهة برمجة التطبيقات الجديدة هذه التطبيقات بـ OemNetworkPreference. لا تتوفر واجهة برمجة التطبيقات هذه إلا لأجهزة السيارات وتمت إضافة تعليقات توضيحية إليها @SystemApi مع إذن signature جديد.

الشكل 2. تطبيق رقم PANS

الإعدادات المفضَّلة لشبكة OemNetwork

OemNetworkPreference عبارة عن تجريد على OEM_PAID OEM_PRIVATE NetworkCapabilities تطبيقات الربط حسب اسم الحزمة إلى الإعدادات المفضَّلة للشبكة. تسمح الإعدادات المفضّلة للشبكة بالتسلسلات الهرمية للشبكة. على سبيل المثال، ربط تطبيق بالخيار المفضّل OEM_NETWORK_PREFERENCE_OEM_PAID يُنتج الأولوية التالية للشبكات الافتراضية المعينة لتطبيق ما: استخدم شبكة UNMETERED أولاً، في حال عدم توفّر UNMETERED، يمكنك استخدام OEM_PAID، وفي حال عدم توفُّر OEM_PAID، استخدِم النظام شبكة افتراضية.

  • OEM_PAID تُستخدَم في المقام الأول للتطبيقات التي يمكن توجيهها على كليهما. الشبكات التابعة للمصنّعين الأصليين والشبكات غير التابعة للمصنّعين الأصليين
  • OEM_PRIVATE تُستخدَم هذه الوظيفة في المقام الأول مع تطبيقات المصنّعين الأصليين للأجهزة من أجل الحصول على إذن بالوصول إلى مخصص لهم.
/**
* 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 للاتصال

لاستخدام واجهات برمجة تطبيقات PANS:

  1. استخدِم OemNetworkPreferences لربط تطبيق بأحد الإعدادات المفضَّلة للشبكة.
  2. الاتصال بـ "setOemNetworkPreference" باستخدام "OemNetworkPreferences" الخاص بك.
  3. يمكنك استخدام واجهة Runnable للاستماع إلى اكتمال عملية تنفيذ واجهة برمجة التطبيقات.

مثلاً:

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

الاعتبارات

أثناء تنفيذ نظام PANS، يجب مراعاة النقاط التالية:

  • حيث لا يتم الاحتفاظ بتفضيلات الشبكة عبر عمليات التشغيل ويجب الالتزام بها مرة أخرى عند كل تمهيد.
  • لإنشاء تفضيل لتطبيق، لا يلزم تثبيته. ولذلك، لا يمكن للشبكة يمكن ضبط الإعدادات المفضّلة للتطبيقات غير المثبَّتة بشكل استباقي.
  • وفي أي وقت، يمكن تعيين تطبيق إلى شبكة مفضّلة واحدة فقط.
  • يتم استخدام إعدادات الشبكة المفضّلة لضبط الشبكة التلقائية لأحد التطبيقات. هذا هو يشير هذا المصطلح إلى الشبكة المستخدَمة عندما لا يحدِّد أحد التطبيقات الشبكات التي يريد استخدامها من خلالها. مع إحدى واجهات برمجة التطبيقات المتخصصة. لا يغطي هذا فقط الغالبية العظمى من احتياجات الاتصال، ويسمح أيضًا بالاستخدام المستمر لواجهات برمجة التطبيقات المتخصّصة، مثل NetworkRequest API. حتى لا يفصل حالات استخدام التطبيق الحالية. على سبيل المثال، عندما يريد أحد التطبيقات إجراء التشغيل عبر شبكة غير محددة بمقدار البيانات، فلن تفرض شبكة PANS عليها استخدام شبكة أخرى.

إعداد شبكة

شبكة تتضمّن OEM_PAID أو OEM_PRIVATE الإمكانات عند استخدام تفضيلات الشبكة المقابلة. جهاز Android دعمًا لضبط إمكانات شبكات الإيثرنت وWi-Fi بالنسبة شبكات إيثرنت، يمكنك استخدام تراكب الموارد، config_ethernet_interfaces يتم تعيين هذا في وقت التجميع.

بالنسبة إلى شبكات Wi-Fi، يمكن استخدام واجهة برمجة التطبيقات WifiNetworkSuggestion مع واجهة برمجة التطبيقات الجديدة واجهات برمجة التطبيقات لنظام التشغيل Android 12، setOemPaid(Boolean) و setOemPrivate(Boolean) ويمكن تغيير هذا الإعداد في وقت التشغيل.

فكِّر في الأمثلة التالية:

  1. يحدِّد تراكب الموارد المُسمّى config_ethernet_interfaces ما يلي:
    • اسم الواجهة المطلوب ضبطها.
    • قيم NetworkCapabilities المطلوبة.
      <!-- 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>
      
  2. يمكن تغيير WiFiNetworkSuggestion ديناميكيًا:
    ArrayList<WifiNetworkSuggestion> list = new ArrayList<>();
    list.add(new WifiNetworkSuggestion.Builder()
                   .setSsid(WifiInfo.sanitizeSsid(ssid))
                   .setOemPrivate(true)
                   .build());
    mWifiManager.addNetworkSuggestions(list);
    

تقييد الوصول إلى شبكات PANS

وضع علامة على شبكة باستخدام OEM_PAID أو OEM_PRIVATE والإمكانيات التي تميّز هذه الشبكة على أنّها شبكة محظورة. الشبكات المحظورة لا يمكن استخدامه إلا من خلال التطبيقات التي تحتوي على إذن CONNECTIVITY_USE_RESTRICTED_NETWORKS الذي يتحكّم فيه المصنّعون الأصليون للأجهزة.

يمكن للتطبيقات التي لديها هذا الإذن استخدام شبكات محظورة شرط أن تطلب التطبيقات صراحةً. . ومع ذلك، لن يتم ضبط الشبكات المقيّدة تلقائيًا على هذه التطبيقات. حملة التطبيقات من خلال شبكات PANS، قد يتم ضبط شبكات المصنّعين الأصليين للأجهزة كإعداد تلقائي، ولن تحتاج إذن الشبكة المحظورة لاستخدامها. عند فرض قيود على هذا التطبيق شبكة المصنّع الأصلي للجهاز التي تم تعيينها كشبكتها الافتراضية بواسطة PANS، ولديها أيضًا القدرة على إلى شبكة المصنّع الأصلي للجهاز المذكورة صراحةً إذا اختار التطبيق إجراء ذلك.

مراجعة التطبيق المرجعي

تم توفير تطبيق مرجعي (بما في ذلك الرمز) باسم NetworkPreferenceApp. في إصدارات سيارات تصحيح أخطاء المستخدم وتوضح كيفية:

  • استهلاك مقاييس PANS
  • ضبط سياسة PANS
  • اضبط سياسة تلقائية للجهاز.
  • محو سياسة
  • تطبيق سياسة عند التشغيل.
  • استخدام Driver Distraction API (يُرجى الاطّلاع على الإرشادات المتعلقة بإلهاء السائق).
  • يجب تحديث شبكة Wi-Fi ديناميكيًا من خلال OEM_PAID وOEM_PRIVATE.

الشكل 3. تطبيق مرجعي

المقاييس

ولتسهيل الشفافية بشأن استخدام البيانات، يتم جمع المقاييس وإنشائها. فيما يتعلق بكمية البيانات المنقولة عبر تعيينات الشبكة OEM_PAID وOEM_PRIVATE.

تحديد المشاكل وحلّها

تنشأ معظم حالات تحديد المشاكل وحلّها من تطبيق يستخدم شبكة خاطئة (عدم وجود اتصال بالشبكة) أو تجاوزات البيانات. لتفعيل حلول سريعة:

  • تشتمل إمكانية الاتصال dumpsys على قائمة بالحسابات النشطة الشبكات التلقائية لكل تطبيق والتطبيقات المرتبطة بها (تم تعيينها من رقم PANS).
  • يشتمل الشبكة dumpsys على عنوان IP للمعرّف الفريد (UID) وقواعد جدار الحماية.
  • تتضمّن Netstats dumpsys مقاييس PANS لكل تطبيق. على سبيل المثال، التطبيقات التي استخدمت شبكة المصنّع الأصلي للجهاز.

جميع بيانات "dumpsys" متاحة من خلال إنشاء تقرير أخطاء في Android.