2

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

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

诺基亚 SuperNova 7210

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

4

2 回答 2

1

你想要达到的目标是绝对不可能的

只有当 Java ME 通过 COMM 端口提供对 GSM 调制解调器的访问时,您的方法才有效,但事实并非如此!

(我想可能有一个设备可以提供这个,在 Java ME 领域一切皆有可能,但我从未见过或听说过这个)。

您所指的库在具有通过 COMM 端口连接到它的设备的 PC 上运行,它在 Java ME 上下文中不起作用

我怀疑您真正想做的是通过 MIDlet 访问手机的本地 SMS 收件箱。我向你保证,绝对没有办法做到这一点!

于 2012-06-28T07:05:57.397 回答
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 模式发送消息”

我没有尝试这个,但如果我必须这样做,这是我会走的路。如果它对你有用,请分享。

于 2012-06-28T15:06:16.783 回答