Хорошо, у меня есть планшет на Android 3.1 (Acer Iconia Tab, который, кстати, великолепен), который я могу использовать с Android USB API для подключения к USB-накопителю (простой USB-накопитель).
Я использую режим USB Host, нахожу устройство, получаю разрешение на подключение к нему (используя BroadcastReceiver).Все отлично работает.Проблема в том, что я не знаю точно, что делать, чтобы скопировать файл из каталога внешнего хранилища на карту памяти USB.
Это то, что у меня есть:
final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (ACTION_USB_PERMISSION.equals(action)) {
synchronized (this) {
UsbDevice device = (UsbDevice) intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
if (device != null) {
// Got to a point where I should set up connection
// I'm setting up a very simple connection, just want some file transfer
UsbInterface intf = device.getInterface(0);
UsbEndpoint endpoint = intf.getEndpoint(0);
UsbDeviceConnection connection = UsbManager.openDevice(device);
if (connection.claimInterface(intf, true)) {
UtilsAndDialogs.print(getApplicationContext(), "Connected to device");
// Copy file to USB...
} else
UtilsAndDialogs.print(getApplicationContext(), "Could not connect!");
}
} else {
UtilsAndDialogs.print(getApplicationContext(), "Permission denied");
Log.d(UtilsAndDialogs.LOG_TAG, "Permission denied for device " + device);
}
}
}
};
Я прочитал документацию по Android Dev Usb Host , но она не очень понятна, и я нашел довольно хороший учебник Android Usb Host Tutorial - AdbTest , но он использует асинхронную связь.
Я просто хочу знать, как мне установить соединение и использовать конечную точку (я не получил часть конечной точки, зачем они нужны), чтобы просто иметь возможность создавать новый файл на запоминающем устройстве USBи скопируйте туда содержимое другого файла, возможно, с помощью метода bulkTransfer ().
Будем весьма благодарны за любые подсказки или указатели на более явную документацию.
Спасибо