2

我正在使用 J2ME 应用程序,它可以从特定端口发送/接收短信。不知何故,我在代码上犯了一些错误,使应用程序出错。当我已经解决了错误时,应用程序总是会收到 2 条短信(第一个错误,第二个已经解决)。因此,我的应用程序无法正常工作,并且当我尝试更改端口时它再次工作(接收短信模块)。

当我尝试测试它以通过使用不同端口 31211(第一个端口是 31210)的notifyIncomingMessage(MessageConnection mc)类的方法接收时,midlet 没有启动。MessageListener因为 midlet 已经在第一个端口 ( PushRegistry.registerConnection("sms://:31210", "my_midlet_class_name", "*")) 上注册。

我尝试使用注销连接,PushRegistry.unregisterConnection("sms://:31210")但不知何故发生了异常Security java/lang/SecurityException Registered by another MIDlet suite。之后,我更改了 midlet 类名称并且它可以工作。

问题是:如何在不更改 midlet 类名的情况下从 url 注销连接,sms://:31210因为我已经更改为 url ?sms://:31211

笔记:

  • 我正在为设备使用诺基亚 C3-00
  • S40 作为操作系统
  • CLDC 1.1 和 MIDP 2.0
4

1 回答 1

1

只有MIDlet注册第一个端口的才能取消注册它。如果可以,请为第一个MIDlet(更大的版本号)安装更新,而无需调用registerConnection和调用unregisterConnection.

更新

根据诺基亚的这篇文章

警告:同一连接 URL 的静态和动态注册不能共存。静态注册会在安装应用程序的那一刻保留端口,从那时起,同一端口上的动态注册将失败。

于 2013-05-13T10:38:45.553 回答