Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Selección de red por aplicación (PANS)

Los vehículos dependen cada vez más de la conectividad para gestionar la creciente lista de casos de uso solicitados tanto por los fabricantes de equipos originales como por los propietarios de vehículos, lo que se traduce en una mayor huella de datos y costes asociados. Utilice la función de selección de red de cada aplicación (PAN) para enrutar el tráfico de aplicaciones especificadas en las redes pagados por el OEM.

Con PANS, puede administrar el volumen y el costo del uso de datos y, al mismo tiempo, brindar una experiencia de automóvil sólida, segura y conectada. PANES:

  • Consta de una nueva API añadido a ConnectivityManager disponible sólo para dispositivos de automoción.
  • Proporciona una API de Wi-Fi sugerencia actualizada (ver Wi-Fi API sugerencia para la conexión a Internet ) para incluir el soporte para cambiar dinámicamente las capacidades de red sartenes.
  • Recopila métricas de apoyo.
  • Proporciona una aplicación de referencia.

¿Por qué PANS?

Los PANS pueden:

  • Actualice dinámicamente las asignaciones de la aplicación a la red.
  • Administre el enrutamiento a nivel de aplicación sin realizar cambios en las aplicaciones.
  • Solo las aplicaciones permitidas por OEM pueden acceder a las redes OEM asignadas.
  • Los desarrolladores de aplicaciones no necesitan realizar ningún cambio para implementar esta función.
  • Las métricas orientadas al usuario rastrean el uso de datos de la aplicación a la red para las redes administradas por OEM.
  • El acceso a la red es seguro y no se puede abusar a través de casos de uso no deseados o aplicaciones no autorizadas.
  • Los cambios en las asignaciones de la aplicación a la red de PANS se comunican a los usuarios.
  • La misma configuración de red se aplica a todos los usuarios.

Ventajas fundamentales

PANS ofrece a los OEMS estas ventajas fundamentales:

  1. Los OEM pueden pagar por el tráfico de la red en lugar de los usuarios:
    • Las actualizaciones del sistema se pueden proporcionar sin costo para el usuario.
    • El uso de la red de aplicaciones específicas se puede proporcionar sin costo para el usuario.
    • La telemetría y otros análisis se pueden administrar sin costo para el usuario.
  2. Los OEM pueden garantizar que las aplicaciones críticas permanezcan conectadas incluso sin un plan de datos pagado por el usuario. Por ejemplo, las características críticas para la seguridad como mapas, asistente (conducción con manos libres) y actualizaciones del sistema continúan funcionando incluso cuando el usuario no tiene un plan de datos.
  3. PANS proporciona granularidad adicional de control específico para el enrutamiento del tráfico de red en Android. Por ejemplo, los OEM pueden definir de manera óptima una topología de red lógica para el enrutamiento del tráfico a nivel de aplicación.

Figura 1. Marco PANS

Implementación de PANS

Para implementar PANS, un nuevo ConnectivityManager API, setOemNetworkPreference , se proporciona. Esta nueva API de Mapas de aplicaciones a un OemNetworkPreference . Esta API está disponible sólo para dispositivos de automoción y se anota como un @SystemApi con una nueva signature autorización.

Figura 2. Implementar PANS

OemNetworkPreference

OemNetworkPreference es una abstracción sobre OEM_PAID y OEM_PRIVATE NetworkCapabilities aplicaciones de mapeo por nombre de paquete a una preferencia de red. Las preferencias de red permiten jerarquías de red. Por ejemplo, el mapeo de una aplicación para la OEM_NETWORK_PREFERENCE_OEM_PAID preferencia tendrá como resultado la siguiente prioridad de las redes de: utilizar una UNMETERED a la red en primer lugar, si UNMETERED no es uso disponible un OEM_PAID red, y si OEM_PAID no está disponible, utilizar la red por defecto del sistema.

  • OEM_PAID utiliza principalmente para aplicaciones que se pueden enrutar en ambas redes no OEM OEM y.
  • OEM_PRIVATE Se utiliza principalmente para aplicaciones de OEM para obtener acceso a una red dedicada a ellos.
/**
* 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;

Llamar a las API de PANS

Para utilizar las API de PANS:

  1. Use OemNetworkPreferences para asignar una aplicación a una preferencia de red.
  2. Llamada setOemNetworkPreference con el OemNetworkPreferences objeto.
  3. Utilice el Runnable interfaz de escuchar para la terminación de la API.

Por ejemplo:

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

Consideraciones

Al implementar PANS, tenga en cuenta los siguientes puntos:

  • Las preferencias de red no persisten en los inicios y deberán volver a aplicarse en cada inicio.
  • Para crear una preferencia por una aplicación, no es necesario instalarla. Por lo tanto, las preferencias de red para las aplicaciones desinstaladas se pueden configurar de forma proactiva.
  • En un momento dado, una aplicación solo se puede asignar a una única preferencia de red.

Configurando una red

Una red con cualquiera de los OEM_PAID o OEM_PRIVATE capacidades debe estar disponible cuando se utiliza una preferencia de red correspondiente. Android proporciona soporte para la configuración de capacidades para redes Ethernet y Wi-Fi. Para redes Ethernet, puede utilizar una superposición de recursos, config_ethernet_interfaces . Esto se establece en tiempo de compilación.

Para Wi-Fi, el WifiNetworkSuggestion API se puede utilizar con el nuevo Android API 12, setOemPaid(Boolean) y setOemPrivate(Boolean) . Esto se puede cambiar en tiempo de ejecución.

Considere estos ejemplos:

  1. Una superposición de recursos denominado config_ethernet_interfaces especifica:
    • El nombre de la interfaz a configurar.
    • Los deseados NetworkCapabilities valores.
      <!-- 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. Este WiFiNetworkSuggestion se puede cambiar de forma dinámica:
    ArrayList<WifiNetworkSuggestion> list = new ArrayList<>();
    list.add(new WifiNetworkSuggestion.Builder()
                   .setSsid(WifiInfo.sanitizeSsid(ssid))
                   .setOemPrivate(true)
                   .build());
    mWifiManager.addNetworkSuggestions(list);
    

Restringir el acceso a las redes PANS

Etiquetar una red, ya sea con los OEM_PAID o OEM_PRIVATE marcas capacidades de esa red como una red restringida. Redes restringidas sólo pueden ser utilizados por las aplicaciones que tienen el CONNECTIVITY_USE_RESTRICTED_NETWORKS permiso, que es controlado por fabricantes de equipos originales.

Aplicaciones con este permiso pueden utilizar las redes previstas las aplicaciones que solicitar explícitamente restringida. Sin embargo, estas aplicaciones no tendrán redes restringidas como predeterminadas. Las aplicaciones mapeadas a través de PANS pueden tener redes OEM restringidas configuradas como predeterminadas y no necesitarán el permiso de red restringido para usarlas. Cuando una aplicación de este tipo tiene una red OEM restringida asignada como su red predeterminada por PANS, también tiene la capacidad de solicitar explícitamente dicha red OEM si la aplicación elige hacerlo.

Revisando la aplicación de referencia

Una aplicación de referencia (incluido el código) llamado NetworkPreferenceApp se proporciona en la facilidad de depuración automotriz construye y demuestra cómo:

  • Consume métricas de PANS.
  • Establezca la política de PANS.
  • Establezca una política predeterminada para el dispositivo.
  • Borrar una póliza.
  • Aplicar una política en el arranque.
  • Utilizar la API de distracción del conductor (véase Directrices La distracción del conductor ).
  • Actualizar dinámicamente Wi-Fi con OEM_PAID y OEM_PRIVATE .

Figura 3. Referencia aplicación

Métrica

Para facilitar la transparencia en el uso de datos, las mediciones se recogen y se ponen a disposición con respecto a la cantidad de datos transmitidos a través de los OEM_PAID y OEM_PRIVATE asignación de red.

Solución de problemas

La mayoría de las condiciones de resolución de problemas surgen de una aplicación que usa la red incorrecta (sin conectividad de red) o de un exceso de datos. Para habilitar resoluciones rápidas:

  • Conectividad dumpsys incluye una lista de redes predeterminadas por la aplicación activos y sus aplicaciones asociadas (asignada desde PANS).
  • NetD dumpsys incluye UID IP y las reglas del cortafuegos.
  • Netstats dumpsys incluye PANS métricas por aplicación. Por ejemplo, qué aplicaciones utilizaron qué red OEM.

Todo dumpsys se dispone de datos mediante la creación de un informe de error Android.