gpt4 book ai didi

java - 通过 USB 进行 Android Java 通信

转载 作者:行者123 更新时间:2023-12-01 04:48:03 25 4
gpt4 key购买 nike

我想通过 USB 将对象/字符串从 Android 设备发送到 Java 中的 PC。有可能的?基本上是一个通过 USB 的客户端/服务器。

实际上,使用模拟器,我可以通过特殊的 10.0.2.2 地址访问服务器套接字。通过 Wi-fi,我可以使用 192.168.1.X 地址进行访问。通过 USB,它是如何工作的?

根据this ,我想这是可能的,但是,我如何在 java 而不是 python 中执行示例代码?有什么想法吗?

private Byte[] bytes
private static int TIMEOUT = 5000;
private boolean forceClaim = true
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
while(deviceIterator.hasNext()){
UsbDevice device = deviceIterator.next()
UsbInterface intf = device.getInterface(0);
UsbEndpoint endpoint = intf.getEndpoint(0);
UsbDeviceConnection connection = mUsbManager.openDevice(device);
connection.claimInterface(intf, forceClaim);
bytes = toByteArray("any path");
connection.bulkTransfer(endpoint, bytes, bytes.length, TIMEOUT);
}


public static byte[] toByteArray(File file) throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
boolean threw = true;
InputStream in = new FileInputStream(file);
try {
byte[] buf = new byte[BUF_SIZE];
long total = 0;
while (true) {
int r = in.read(buf);
if (r == -1) {
break;
}
out.write(buf, 0, r);
}
threw = false;
} finally {
try {
in.close();
} catch (IOException e) {
if (threw) {
log.warn("IOException thrown while closing", e);
} else {
throw e;
}
}
}
return out.toByteArray();
}

最佳答案

我的建议是使用文本文件。

将文本文件保存在 SD 卡中。然后在你的PC java程序中,执行adb pull命令。

这样,如果您的手机通过 USB 连接到 PC,则在执行 adb pull 时,文件将从手机拉取到 PC。

当然需要在你的电脑上有adb并且在你的手机上允许USB调试。

希望这有帮助。

问候

关于java - 通过 USB 进行 Android Java 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15488653/

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