What is the proper way to close a connection to a UsbAccessory
in Android?
It seems the even in the stock Google example, if I connect and accessory, exit the app and then go back to it, the connection is not re-established.
Looking closely, it seems that after calling close()
on the FileDescriptor
, it won't open again, and a "could not open /dev/usb_accessory" log is emitted.
NOT calling close()
is a bad option, as a thread blocking on read()
will not be released. Upon physical disconnection / reconnection of the device everything is OK.
It seems really surprising that the simple use-case of exiting the app and then opening it again does not work in the reference application and even more surprising if it is not feasible.
I'm using a Nexus S running stock Android 2.3.6.