<分区>
我必须在使用 Android 的设备的 COM 端口上读取和写入数据。我为此使用了 javax.comm 包,但是当我安装 apk 文件时,它没有显示设备的任何端口。我需要在 list 文件中添加任何权限吗?
<分区>
我必须在使用 Android 的设备的 COM 端口上读取和写入数据。我为此使用了 javax.comm 包,但是当我安装 apk 文件时,它没有显示设备的任何端口。我需要在 list 文件中添加任何权限吗?
最佳答案
您的问题与操作系统有关。 Android runs Linux under the hood , Linux 对待串行端口的方式与 Windows 不同。 javax.comm
还包含 win32com.dll
,一个 driver file ,您将无法将其安装在 Android 设备上。如果您确实找到了一种方法来实现您想要做的事情,那么您实际上无法在 Linux 环境中寻找“COM”端口。串行端口将使用不同的名称。
Windows Com Port Linux equivalent
COM 1 /dev/ttyS0
COM 2 /dev/ttyS1
COM 3 /dev/ttyS2
因此,假设如果您的想法可行,您必须寻找这些名称。
幸运的是,Android 确实提供了与 USB 设备连接的功能(我假设您想要连接到它,而不是并行或 RS-232 端口)。为此,您需要将设备设置为 USB Host.。以下是您需要执行的操作:
USBManager
. USBInterface
和 USBEndpoint
.这是我对您将如何做的粗略估计。当然,您的代码将采用更成熟的处理方式。
String YOUR_DEVICE_NAME;
byte[] DATA;
int TIMEOUT;
USBManager manager = getApplicationContext().getSystemService(Context.USB_SERVICE);
Map<String, USBDevice> devices = manager.getDeviceList();
USBDevice mDevice = devices.get(YOUR_DEVICE_NAME);
USBDeviceConnection connection = manager.openDevice(mDevice);
USBEndpoint endpoint = device.getInterface(0).getEndpoint(0);
connection.claimInterface(device.getInterface(0), true);
connection.bulkTransfer(endpoint, DATA, DATA.length, TIMEOUT);
额外的阅读 Material :http://developer.android.com/guide/topics/connectivity/usb/host.html
关于java - 如何在 Android 中读取和写入数据到 COM/串口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11011515/