我正在尝试编写J2ME应用程序的一部分,我负责从通过蓝牙连接的GPS设备(到Dell Axim X51 PDA)读取NMEA数据。
我已将gps设备与PDA配对,我可以运行gps设备附带的示例程序,并成功传输NMEA字符串。
在系统设置中,在GPS设置中,我为用于获取GPS数据的程序设置了一个COM端口(8),但是,当提供GPS硬件端口的详细信息时,似乎没有将波特率与我必须在示例程序中使用的波特率相匹配?这有关系吗?波特率实际意味着什么?
现在,据我了解设置,我现在能够通过COM 8读取NMEA数据吗?
然而,当我打印出来时:
System.getProperty("microedition.commports")
COM8没有出现在返回的列表中,如果我尝试在该端口上打开连接,我会收到以下错误:
java.io.IOException: GetCommState() failed; error code=21, (21) The device is not ready.
有关成功设置COM端口以进行读取以及实际读取它的任何指针都是非常受欢迎的。对于该怎么做,我很难过,也很无能为力。
答案 0 :(得分:1)
您的设备上的j2me实现很可能根本不支持蓝牙COM端口。我建议先确认一下。可能值得比较其他(最近的)手机上的系统属性调用的结果。
答案 1 :(得分:1)
不知道该特定设备,但在J2ME中打开蓝牙COM端口的常用方法是使用JSR-82 API。
您将扫描附近的设备,找出哪个是您的GPS(通常在友好名称中包含“GPS”),扫描该设备上的服务(大多数GPS仅提供一个),并打开BTSPP连接到那项服务。