Ir al contenido

Más visitados

Visitados recientemente

navigation

Cómo determinar y supervisar el tipo y el estado del conector

Los dispositivos Android se pueden conectar a varios tipos diferentes de conectores. Por ejemplo, se puede utilizar conectores para coche o para el hogar, y tanto digitales como analógicos. Normalmente, el estado del conector está vinculado al estado de carga, ya que muchos conectores cargan el dispositivo mientras está conectado.

El modo en el cual el estado del conector del teléfono afecta a la frecuencia de actualización depende de tu app. Puedes optar por aumentar la frecuencia de actualización de una app de noticias deportivas cuando el dispositivo se enchufe a un conector de escritorio, o por inhabilitar tus actualizaciones completamente si se enchufa a un conector para autos. Por el contrario, puedes maximizar tus actualizaciones cuando el dispositivo esté conectado a un auto si tu servicio en segundo plano actualiza el estado del tráfico.

El estado del conector también se transmite como un Intent persistente, lo que te permite consultar si el dispositivo está conectado o no y, si lo está, determinar el tipo de conector.

Cómo determinar el estado actual de la conexión

La información sobre el estado del conector se incluye como elemento adicional en una transmisión persistente de la acción ACTION_DOCK_EVENT. Ya que es persistente, no es necesario registrar un BroadcastReceiver. Solo debes llamar a registerReceiver() transmitiendo null como el receptor de transmisión, como se muestra en el siguiente fragmento de código.

IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
Intent dockStatus = context.registerReceiver(null, ifilter);

Puedes extraer el estado actual de la conexión del elemento adicional EXTRA_DOCK_STATE:

int dockState = battery.getIntExtra(EXTRA_DOCK_STATE, -1);
boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;

Cómo determinar el tipo actual de conector

Si un dispositivo está insertado en un conector, puede estar conectado a cualquiera de estos cuatro tipos de conectores:

Ten en cuenta que las últimas dos opciones se introdujeron en Android únicamente en el nivel 11 del API. Por ello, te recomendamos que compruebes las tres opciones solo cuando te interese más el tipo de conector que saber si es digital o analógico:

boolean isCar = dockState == EXTRA_DOCK_STATE_CAR;
boolean isDesk = dockState == EXTRA_DOCK_STATE_DESK ||
                 dockState == EXTRA_DOCK_STATE_LE_DESK ||
                 dockState == EXTRA_DOCK_STATE_HE_DESK;

Cómo supervisar cambios en el estado de la conexión o en el tipo de conector

Cuando el dispositivo se inserta en un conector o se desconecta de él, se transmite la acción ACTION_DOCK_EVENT. Para supervisar los cambios que se produzcan en el estado del conector del dispositivo, solo tienes que registrar un receptor de transmisión en el manifiesto de la aplicación, como se muestra en el siguiente fragmento de código:

<action android:name="android.intent.action.ACTION_DOCK_EVENT"/>

Puedes extraer el estado y el tipo de conector en la implementación del receptor con las mismas técnicas descritas en el paso anterior.

Este sitio usa cookies para almacenar tus preferencias específicas de idioma y visualización.

Obtén las noticias y sugerencias más recientes para programadores de Android, que te ayudarán a lograr el éxito en Google Play.

* Campos obligatorios

¡Muy bien!

Sigue a Google Developers en WeChat

¿Deseas explorar este sitio en ?

Solicitaste ver la página en , pero tu preferencia de idioma actual para este sitio es .

¿Quieres cambiar tu preferencia de idioma y explorar este sitio en ? Si deseas cambiarla en otro momento, usa el menú de idioma que se encuentra en la parte inferior de cada página.

Esta clase requiere un nivel de API igual o superior a

El documento está oculto porque el nivel de API que seleccionaste para la documentación es . Puedes cambiar el nivel de API de la documentación con el selector que está sobre el menú de navegación izquierdo.

Para obtener más información sobre cómo especificar el nivel de API que requiere tu app, consulta el artículo sobre Compatibilidad con diferentes versiones de la plataforma.

Take a short survey?
Help us improve the Android developer experience. (April 2018 — Developer Survey)