在J2ME中执行AT命令

时间:2012-06-27 20:45:32

标签: java-me at-command

我想知道如何在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”,我就可以用同样的方式执行我想要的命令。

我正试图在两部不同的手机上执行此操作

Nokia SuperNova 7210

端口= USB1

当我尝试写入端口时没有任何反应。

Nokia Xpress music

端口= 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

2 个答案:

答案 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模式下发送消息”

我没有试过这个,但如果必须的话,这就是我要走的路。如果它适用于您,请分享。