Cómo verificar la información de dispositivos externos conectados a dispositivos Android vía USB
Este artículo presenta principalmente ejemplos de código para ver información de dispositivos externos conectados por USB en Android. Los amigos que lo necesiten pueden consultarlo
1. Disco duro móvil):
//El monitoreo de inserción y extracción de dispositivos de almacenamiento USB es consistente con el monitoreo de inserción y extracción de tarjetas SD.
El código es el siguiente:
private USBBroadCastReceiver
mBroadcastReceiver;
IntentFilter iFilter = new IntentFilter();
iFilter.addAction(Intent.ACTION_MEDIA_EJECT);
iFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
iFilter.addAction(Intent.ACTION_MEDIA_REMOVED);
iFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
iFilter.addDataScheme("archivo");
mBroadcastReceiver = nuevo
USBBroadCastReceiver();
registrarReceiver(mBroadcastReceiver,
iFilter);
clase privada USBBroadCastReceiver extiende BroadcastReceiver {
@Override
public void onReceive (Contexto contexto, intención intención)
{
String action = intent.getAction();
if
(action.equals (Intent. ACTION_MEDIA_EJECT)) {
//Retire el dispositivo USB y actualice la interfaz de usuario
} else if
(action.equals(Intent.ACTION_MEDIA_MOUNTED)) {
p>
//Montaje del dispositivo USB, actualización de la interfaz de usuario
}
}
}
//Montar el uso del espacio de almacenamiento del dispositivo USB
public static String getUSBStorage(Context context){
// Almacenamiento USB
//almacenamiento /udisk es el dispositivo USB La ruta de montaje en el dispositivo Android Las rutas de los dispositivos Android de diferentes fabricantes son diferentes.
//Escribir así también es adecuado para el montaje de tarjetas SD.
Ruta del archivo = new File("/storage/udisk");
StatFs stat = new StatFs(path.getPath());
long blockSize =
stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
long availableBlocks = stat.getAvailableBlocks();
String usedSize =
Formatter.formatFileSize(context, (totalBlocks-availableBlocks) *
blockSize);
String availableSize = Formatter.formatFileSize(contexto ,
Bloques disponibles * tamaño de bloque);
devolver tamaño usado + " / " +
tamaño disponible;//Espacio: usado/disponible
}
2, dispositivo de entrada externo USB (como teclado, mouse, escáner)
Copia el código
El código es el siguiente:
prueba {
//Obtén información sobre el dispositivo de entrada USB externo
Proceso p=Runtime.getRuntime().exec("cat
/ proc/ bus/input/devices");
BufferedReader in = new BufferedReader(new
InputStreamReader(p.getInputStream()));
Línea de cadena = nulo ;
mientras((line = in.readLine())!= nulo){
String deviceInfo =
line.trim();
//Filtra la información del dispositivo de cada fila obtenida para obtener lo que deseas.
}
} catch (Excepción e) {
// TODO: manejar
excepción
e .printStackTrace();
}
Además: la información del dispositivo también se puede ver a través de adb
shell y ejecutar cat /proc/bus/input/devices.
La información del dispositivo de entrada externo USB se imprime de la siguiente manera:
Copia el código
El código es el siguiente:
I: Bus=0003 Proveedor=11c0 Producto =0030
Versión=0110
N: Nombre="Teclado USB ACRUX"
P:
Phys=usb-0000: 00:04.0-1.3/input1
S:
Sysfs=/devices/pci0000:00/0000:00:04.0/usb1/1-1 /1-1.3/1- 1.3:1.1/input/input3
U:
Uniq=
H: Handlers=mouse1 evento3
B: PROP=0
B: EV=17
B: CLAVE=70000 0 0
0 0 0 0 0 0
B: REL= 103
B: MSC=10
I: Bus=0003 Proveedor=11c0
Producto=0030 Versión=0110 Esta línea Se mostrará una gran cantidad de información entre los dispositivos Android y USB si se utiliza la interacción de datos del dispositivo.
Para escribir código sobre cómo los dispositivos externos USB interactúan con los datos del dispositivo Android, consulte:
/guide/topics/connectivity/usb/index.html
N: Nombre="Teclado USB ACRUX" Esta línea describe el nombre del dispositivo USB externo.
P: Phys=usb-0000:00:04.0-1.3/input1
S:
Sysfs=/devices/pci0000:00/0000:00 :04.0/usb1/1-1/1-1.3/1-1.3:1.1/input/input3
Estas dos líneas se pueden usar para identificar a qué puerto USB del dispositivo Android está conectado el dispositivo USB .
p>