gpt4 book ai didi

android - 在 USB 主机模式下安装的 USB 存储设备上的文件 I/O(Android 3.1 及更高版本)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:38:59 28 4
gpt4 key购买 nike

好的,所以我有一个 Android 3.1 平板电脑(Acer Iconia Tab,顺便说一句,它很棒),我可以使用它与 Android USB API 连接 USB 大容量存储设备(一个简单的 USB 内存棒)。

我使用 USB 主机模式,找到设备,获得连接它的权限(使用 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() 方法。

任何指向更明确文档的提示或指针将不胜感激。

谢谢

最佳答案

Android USB 主机 API 仅提供原始 USB 访问。要访问存储设备上的文件,您的应用程序本身必须在 USB Api 之上实现 USB 大容量存储模式,然后在其之上实现文件系统代码。

一些供应商定制的 Android 版本将在操作系统级别安装具有可识别文件系统的 USB 大容量存储设备,但这目前不是标准 android 的一部分。也有可能,如果你有一个 root 设备,你可以使用它来说服内核挂载这样一个文件系统。

关于android - 在 USB 主机模式下安装的 USB 存储设备上的文件 I/O(Android 3.1 及更高版本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7371715/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com