Los dispositivos con Android se pueden conectar a diferentes tipos de conectores. Estos incluyen estaciones para automóviles y para el hogar, y estaciones digitales o analógicas. El estado del conector es normalmente están estrechamente vinculadas con el estado de carga, dado que muchas estaciones proporcionan energía a conectados.
Tu app afecta la frecuencia de actualización del teléfono en el estado de la estación de carga. Puedes aumentar la frecuencia de actualización de una app de noticias sobre deportes cuando está en un conector de escritorio desactivar por completo las actualizaciones si el dispositivo está en un conector para autos. Por el contrario, puedes maximizar las actualizaciones cuando el auto esté conectado si se actualiza el servicio en segundo plano condiciones de tráfico.
El estado del conector también se transmite como un anuncio fijo.
Intent
,
lo que te permite consultar si el dispositivo está conectado y en qué tipo de conector si
así que
Cómo determinar el estado actual de conexión
Los detalles sobre el estado del conector se incluyen como información adicional en un
transmisión fija de la
ACTION_DOCK_EVENT
acción. Como es pegajoso, puedes llamar
registerReceiver()
,
y pasa null
como receptor de emisión. El siguiente fragmento
te muestra cómo completar este proceso:
Kotlin
val dockStatus: Intent? = IntentFilter(Intent.ACTION_DOCK_EVENT).let { ifilter -> context.registerReceiver(null, ifilter) }
Java
IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT); Intent dockStatus = context.registerReceiver(null, ifilter);
Puedes extraer el estado actual del conector de la
Extra de EXTRA_DOCK_STATE
:
Kotlin
val dockState: Int = dockStatus?.getIntExtra(EXTRA_DOCK_STATE, -1) ?: -1 val isDocked: Boolean = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED
Java
int dockState -1; if (dockStatus != null) { dockState = dockStatus.getIntExtra(EXTRA_DOCK_STATE, -1); } boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;
Cómo determinar el tipo de conector actual
Si un dispositivo está conectado, se puede conectar en cualquiera de los siguientes cuatro Diferentes tipos de conector:
- Car
- Escritorio
- Escritorio de gama baja (analógica)
- Escritorio de gama alta (digital)
Las últimas dos opciones solo se presentan en el nivel de API 11 de Android, así que es te recomendamos que verifiques los tres tipos de escritorios cuando solo te interese el tipo de conector en lugar de ser digital o analógico:
Kotlin
val isCar: Boolean = dockState == EXTRA_DOCK_STATE_CAR val isDesk: Boolean = dockState == EXTRA_DOCK_STATE_DESK || dockState == EXTRA_DOCK_STATE_LE_DESK || dockState == EXTRA_DOCK_STATE_HE_DESK
Java
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;