- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我知道如何做以下事情:
所以最后我有一个 UsbDevice
并且我有读/写它的权限。如何从这里继续?
我可以打开设备并获得如下所示的 FileDescriptor
:
UsbManager manager = (UsbManager) activity.getSystemService(Context.USB_SERVICE);
UsbInterface intf = device.getInterface(0);
UsbEndpoint endpoint = intf.getEndpoint(0);
UsbDeviceConnection connection = manager.openDevice(device);
boolean interfaceClaimed = connection.claimInterface(intf, true);
int fileDescriptor = connection.getFileDescriptor();
我现在如何使用这个 FileDescriptor
?或者我还能如何访问 USB 设备上的文件?
编辑
android <6 的解决方案:不要打开 UsbDeviceConnection
并尝试查找 USB 设备路径。尽管如此,您仍然无法区分多个 USB 设备并且不知道哪个路径属于哪个设备...
Android >= 6 的解决方案:使用存储访问框架,实际上我还不知道它是如何工作的...
最佳答案
因为我和你一样难过,所以我会选择使用 ls
命令。
代码示例:
try {
Process process = Runtime.getRuntime().exec("ls /storage/UsbDriveA");
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String listOfFiles = "";
String line;
while ((line = buffer.readLine()) != null) {
listOfFiles += line;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
如果挂载点不正确,
ls
将返回 no such file or directory
。
以下是制造商使用的许多挂载点的列表:
/storage/UsbDriveA (all Samsung devices)
/storage/USBstorage1 (LG G4, V10, G3, G2, other LG devices)
/storage/usbdisk (Moto Maxx, Turbo 2, Moto X Pure, other Motorola devices)
/storage/usbotg (Sony Xperia devices, Lenovo Tabs)
/storage/UDiskA (Oppo devices)
/storage/usb-storage (Acer Iconia Tabs)
/storage/usbcard (Dell Venue -- Vanilla Android 4.3 tablet)
/storage/usb (HTC One M7, and some Vanilla Android devices)
(基于我收集的设备和其他 3 个人的设备,以及快速访问 Bestbuy 以测试最新的旗舰产品。我知道我唯一缺少的流行设备是位于中国的 Hawuei/Xioami 设备,它们正在变得流行在英语国家,但他们可能使用上述之一。)
要找到正确的挂载点,您需要监听 no such file or directory
并使用下一个挂载点循环/重新执行 exec()
语句。
完成所有这些后,您可以使用 cat/storage/.../file.txt
轻松读取文件,并使用重定向写入:echo test >/storage/。 ../文件.txt
希望对你有帮助
关于android - 如何列出 USB OTG 设备上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35089466/
我想从设备读取/写入 OTG USB 存储。为此,我编写了下面的代码,但它只显示了 SD 卡。 HashSet out = new HashSet(); String reg = "(?i).*vol
我有一台运行 Linux 3.0.35 内核的 Variscite VAR-SOM-MX6,带有两个 USB 端口。第一个端口是连接到外部迷你 OTG 插孔的 OTG 端口。第二个是连接到集线器芯片的
我想在 Android 11 上读取 OTG USB我可以在 Android 9 上列出这样的文件: val path = File("/storage") 我可以在 Android 11 中列出外部
我正在寻找支持 USB OTG 的 Symbian/Android/Windows Phone。我有一个简单的设备,可以通过 USB 发送非常基本的 ascii 数据,我需要在手机应用程序中读取数据。
这是我的 Activity 代码。 public class MainActivity extends AppCompatActivity { ListView lv; @Override prote
当我使用串口运行谷歌珊瑚时,我可以运行演示应用程序,但是当我尝试运行时 谷歌珊瑚使用数据端口(c 型电缆)我无法连接到开发板 rahul@ubuntu:~$ mdt shell 正在等待设备... 1
我有一个像鼠标一样的 USB OTG 设备,在中国购买,关于所用 Controller 的信息不多。当我将它连接到我的 android 时,有一个鼠标光标,并且该设备有 5 个硬按钮(左、右、上、下、
我想构建一个 android 应用程序,其中我想检测到设备的 otg 电缆连接。例如。我想在这样的检测中显示 toast ,这可能吗?我的意思是有同样的 Intent 吗?任何帮助将不胜感激谢谢你 最
我正在开发一个使用了 OTG 笔式驱动器的应用程序,因此从 OTG 笔式驱动器读取数据这样的概念,但所有用户都可能不是同一个设备。 我已经在 5-6 台设备上进行了测试,这些设备给我提供了不同的 US
我正在开发一个 android 项目,我在该项目中使用手机为外部设备供电。通过 USB-OTG 连接,我可以为外部设备供电。 我想知道我是否可以在 android studio 上编写一个程序,我可以
我有一个连接到 Android 设备的外部大容量存储设备。我需要将根目录中的几个 .BIN 文件读入我的应用程序。我能够连接到设备并使用 UsbDeviceConnection 接收 usb 权限。
在我的应用程序中,我需要检测空的 otg 插入。系统通过此检测到空的 USB 连接器并显示如下图所示的通知 Notification Image 我需要接收它的 Intent 。我尝试了以下代码
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我想为以太网卡分配一个静态 IP,通过 OTG 电缆连接到 Android 设备。它应该以编程方式完成,但我在 android 中找不到有关以太网卡的任何引用。 有什么想法吗? 谢谢 最佳答案 如果是
我知道如何做以下事情: 监听usb设备的attach和detach事件 获取所有连接的设备 获取设备权限 所以最后我有一个 UsbDevice 并且我有读/写它的权限。如何从这里继续? 我可以打开设备
设备支持 USB OTG。以下是场景: 当设备连接到 PC 时,该设备充当从设备。 (设备如何知道它必须充当奴隶?) 当设备连接到打印机时,该设备充当主机。(设备如何知道它必须充当主机?) 当设备连接
设备支持 USB OTG。以下是场景: 当设备连接到 PC 时,该设备充当从设备。 (设备如何知道它必须充当奴隶?) 当设备连接到打印机时,该设备充当主机。(设备如何知道它必须充当主机?) 当设备连接
我正在开发一项正在进行的服务,该服务监听与 radio 的 USB 接口(interface)连接。当找到这样的连接时,此服务会更新其通知以反射(reflect)所述连接;当连接丢失时(例如通过拔出事
在过去的一个月里,我使用以下简单配置将我的 LG G3 同时连接到网络摄像头和电源。 Picture of Phone charging and OTG connection to webcam wi
我有两部通过 OTG 数据线连接的安卓手机。显然,电缆迫使一部电话进入主机模式,另一部成为外围设备。我希望能够动态切换设备的主机/外围设备状态,而无需切换电缆,OTG HNP 规范似乎表明这是可能的。
我是一名优秀的程序员,十分优秀!