Accesorios USB para Android – Nankai

Cómo usar el modo accesorio para comunicarse entre 2 dispositivos Android. Conectarás 2 dispositivos con un cable USB + un adaptador USB-OTG y podrás chatear entre dispositivos (o intercambiar otros datos en una aplicación real).

La aplicación tiene 2 sabores: un sabor del host y un sabor del dispositivo. Debe instalar uno de estos sabores en cada dispositivo.

para anfitriones:

$> gradle installHostDebug

para equipo:

$> gradle installDeviceDebug

Darse cuenta de la dirección tdepende del cable, incluso si hay un micro-USB en ambos extremos. El adaptador OTG debe estar en un dispositivo con el tipo de host instalado.

El principal problema era averiguar cómo hacer que el dispositivo cambiara al modo accesorio; la idea fue tomada de algunos Código C dentro del conjunto de pruebas de compatibilidad de Android – Así es como se ve en Java:

private boolean initAccessory(final UsbDevice device) {        final UsbDeviceConnection connection = mUsbManager.openDevice(device);        if (connection == null) {
return false;
}

initStringControlTransfer(connection, 0, "quandoo"); // MANUFACTURER
initStringControlTransfer(connection, 1, "Android2AndroidAccessory"); // MODEL
initStringControlTransfer(connection, 2, "showcasing android2android USB communication"); // DESCRIPTION
initStringControlTransfer(connection, 3, "0.1"); // VERSION
initStringControlTransfer(connection, 4, "http://quandoo.de"); // URI
initStringControlTransfer(connection, 5, "42"); // SERIAL

connection.controlTransfer(0x40, 53, 0, 0, new byte[]{}, 0, Constants.USB_TIMEOUT_IN_MS); connection.close(); return true;
}
private void initStringControlTransfer(final UsbDeviceConnection deviceConnection,
final int index,
final String string) {
deviceConnection.controlTransfer(0x40, 52, 0, index, string.getBytes(), string.length(), Constants.USB_TIMEOUT_IN_MS);
}

Fuente: https://github.com/VNAPNIC/USB-accessory-sample

Deja una respuesta

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