Skip to content

Most visited

Recently visited

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.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)