Saltar al contenido

Android: detección de USB

Agradecemos tu ayuda para extender nuestros enunciados sobre las ciencias de la computación.

Solución:

Algunas personas sugirieron usar UMS_CONNECTED que está en desuso a partir de la versión reciente de Android El otro problema es que no funciona con dispositivos habilitados para MTP

Otros sugirieron el uso de la BatteryManagermás precisamente ACTION_BATTERY_CHANGED tanto como BATTERY_PLUGGED_AC y BATTERY_PLUGGED_USB
Esto es perfecto si desea detectar el estado de la batería o la carga del dispositivo, pero no es un buen indicador de una conexión USB. El uso del administrador de batería es propenso a fallar en tabletas Android más antiguas, como XOOM, ICONIA tab A510 y las tabletas Asus más antiguas.

Para detectar puramente que el dispositivo estaba conectado a una PC, puede: Usar android.hardware.usb.action.USB_STATE y connected
en lugar de la BatteryManager cosas

Ejemplo de código

public static boolean isConnected(Context context) 
        intent = context.registerReceiver(null, new IntentFilter("android.hardware.usb.action.USB_STATE"));
        return intent.getExtras().getBoolean("connected");
    

Espero que esto ayude

Pude detectar la conexión USB al registrar un receptor de transmisión siguiendo,

IntentFilter mIntentFilter = new IntentFilter(Intent.ACTION_UMS_CONNECTED);

BroadcastReceiver bd = new intentReceiver();
registerReceiver(bd, mIntentFilter);

Esto funciona para mí.

Agregue esto en su AndroidManifest.xml

        
            
                
                
                
            
        

y crea tu BroadcastReceiver.

public class PlugInControlReceiver extends BroadcastReceiver 

    @Override public void onReceive(final Context context, Intent intent) 

        String action = intent.getAction();
        Log.v("PlugInControlReceiver","action: "+action);

        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)

            if(action.equals("android.hardware.usb.action.USB_STATE")) 

                if(intent.getExtras().getBoolean("connected"))

                    Toast.makeText(context, "USB Connected", Toast.LENGTH_SHORT).show();
                else

                    Toast.makeText(context, "USB Disconnected", Toast.LENGTH_SHORT).show();
                
            
         else 
            if(action.equals(Intent.ACTION_POWER_CONNECTED)) 

                Toast.makeText(context, "USB Connected", Toast.LENGTH_SHORT).show();
            
            else if(action.equals(Intent.ACTION_POWER_DISCONNECTED)) 

                Toast.makeText(context, "USB Disconnected", Toast.LENGTH_SHORT).show();
            
          
         

Calificaciones y comentarios

Recuerda que puedes dar recomendación a este ensayo si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *