我想知道如何在J2ME应用程序中执行AT命令。我简要介绍的方法如下:
首先通过
获取手机中存在的所有端口 String ports = System.getProperty("microedition.commports");
现在只是尝试写“AT”并等待每个端口的响应(是的我说每个 !!!)
try{
commConnection = (CommConnection) Connector.open("comm:" + portsArr[i] + ";baudrate=19200");
} catch (IOException e) {
print("IOException:Port:" + portsArr[i] + "~Mess: " + e.getMessage());
}
一旦我从某个端口得到“OK”,我就可以用同样的方式执行我想要的命令。
我正试图在两部不同的手机上执行此操作
端口= USB1
当我尝试写入端口时没有任何反应。
端口= USB2,COM1,IR1,USB1,BT1,BT2,BT3,BT4,BT5,BT6,BT7,BT8,BT9,BT10,BT11,BT12,BT13,BT14,BT15,BT16,BT17,BT18,BT19 ,BT20,BT21,BT22,BT23,BT24,BT25,BT26,BT27,BT28,BT29,BT30,BT31,BT32,BT33,BT34,BT35,BT36,BT37,BT38,BT39,BT40,BT41,BT42,BT43,BT44 ,BT45,BT46,BT47,BT48,BT49,BT50,BT51,BT52,BT53,BT54,BT55,BT56,BT57,BT58,BT59,BT60,BT61,BT62,转基因Bt63,BT64
当我尝试写入USB2,COM1,BT1端口时
IOException:Port:COM1~Mess: SymbianOS error = -1 : General:
System error
IOException:Port:USB1~Mess: SymbianOS error = -21 : General:
System error
IOException:Port:BT1~Mess: SymbianOS error = -44 : General:
System error
这是正确的做法吗?
Smslib使用AT命令,但我不明白他们如何执行AT命令或者他们如何获得写入AT命令的端口?
如果J2ME不可能,我不介意不用其他语言编写AT命令的执行,只要两者都能够通信并且解决方案将支持大多数供应商。
相关 - https://stackoverflow.com/questions/3803508/can-i-use-at-commands-insider-j2me-app
答案 0 :(得分:1)
你想要达到的目标绝对是不可能。
只有当Java ME通过COMM端口提供对GSM调制解调器的访问时,您的方法才有效,而不是!
(我想可能可能可能是某个提供此功能的设备,在Java ME中可以做任何事情,但我从未见过或听说过这个。)
您所指的库在PC上运行,该PC上有通过COMM端口连接的设备,不在Java ME上下文中工作。
我怀疑你真正想做的是通过MIDlet访问手机的原生短信收件箱。我向你保证,绝对没有办法这样做!
答案 1 :(得分:0)
如果你要做的只是发送短信,也许你可以使用APDU来实现。在技术上似乎是可能的:
首先,您需要JSR 177 SATSA-APDU。在http://www.developer.nokia.com/Community/Wiki/Java_ME_API_support_on_Nokia_devices检查支持它的诺基亚设备
然后你必须像STK Applet那样创建一个SMS APDU。请在http://www.dreamfabric.com/sms/处查看“在PDU模式下发送消息”
我没有试过这个,但如果必须的话,这就是我要走的路。如果它适用于您,请分享。