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 BatteryManager
má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.