Manera correcta de cerrar una conexión de accesorio USB
¿Cuál es la forma correcta de cerrar una conexión a un UsbAccessory
en Android? Parece que incluso en el ejemplo de Google stock, si me conecto y accesorio, salir de la aplicación y luego volver a ella, la conexión no se restablece.
Mirando de cerca, parece que después de llamar a close()
en el FileDescriptor
, no se abrirá de nuevo y no se podrá abrir el archivo / dev / usb_accessory. NO llamar a close()
es una mala opción, ya que un bloqueo de subprocesos en read()
no se liberará. Tras la desconexión / reconexión física del dispositivo todo está bien.
- Para transferir el archivo de PC a Android dispositivo a través de usb
- Cómo usb -conecta dispositivos android con adb bajo ubuntu
- El desarrollo de una aplicación de comunicación de dispositivos especiales que se conecta a través de puerto USB en Android
- Android bulkTransfer devuelve -1 cuando lee datos pero realmente hay algunos datos en el buffer
- Interfaz USB en Android
Parece realmente sorprendente que el simple caso de uso de salir de la aplicación y luego abrir de nuevo no funciona en la aplicación de referencia y aún más sorprendente si no es factible.
Estoy usando un Nexus S en ejecución Android 2.3.6.
- Java.io.IOException, "número de archivo incorrecto" Conexión USB
- "No hay dispositivos conectados", tratando de conectar mi LG a mi máquina Ubuntu
- Modo de Android Host Depuración USB
- Conexión de dos dispositivos Android a través de USB
- Nexus 5x no aparece en adb en Win7
- Android 3.1 USB-Host - BroadcastReceiver no recibe USB_DEVICE_ATTACHED
- Android Tablet no puede encontrar el dispositivo USB a través de puerto USB, pero puede a través de OTG cable
- Problemas de conexión de Android 6 Nexus 5 USB
El problema es que el subproceso de lectura nunca sale, por lo que el descriptor de archivo permanece abierto y no se puede abrir de nuevo cuando se reanuda la aplicación.
Se ha confirmado que se trata de un error: http://code.google.com/p/android/issues/detail?id=20545
Vota sobre este error si te importa.
Trate de reconectar el doble de costuras que la primera vez que no se va a cerrar la conexión y luego intente de nuevo para abrirlo funcionará! Para mí funcionó!
- Asignación de mapa de bits, utilizando BitmapFactory.Options.inBitmap arroja IllegalArgumentException
- Recarga de WebView cuando Fragmento en ViewPager se retiene desde BackStack