1

我正在尝试让我的 j2me 应用程序在手机开机时自动启动。(手机是 Sonim XP1301。)

我添加了 jad 属性“MIDlet-Launch-Power-On: yes”,现在应用程序自动启动但停留在后台......这对我来说没用,因为应用程序是基于 UI 的并且需要用户交互......

是否有任何其他 jad 属性会强制应用程序在前台启动,或者一些 j2me 命令将应用程序带到前台?

编辑:在 Sonim 开发者网站上,我发现了这个:

“我们有我们的模拟器库,您可以在其中检查应用程序是否在后台。一旦获得结果,您就可以将其带到前台

JavaBackgroundMode.isRunningInBackground(Midlet m); 用于检查 Midlet 是否在后台。如果它返回true,则表示它在后台。

JavaBackgroundMode.bringToForeground(this); 用于将应用程序带到前台。”

..但我不知道这实际上意味着什么......什么“模拟器库”?我在哪里可以下载它以及如何使用它?如果我尝试将此行添加到我的代码中:

JavaBackgroundMode.bringToForeground(this);

..NetBeans 给我错误“找不到 sybmol:变量 JavaBackgroundMode”。

有任何想法吗?

Edit2:测试“推送注册表”,不起作用。JAD 文件如下所示:

MIDlet-1: Contactless,,example.contactless.ContactlessDemo
MIDlet-Description: This is basic JSR257 Contactless Communication API demo.
MIDlet-Jar-Size: 7738
MIDlet-Jar-URL: Contactless.jar
MIDlet-Name: Contactless
MIDlet-Permissions: javax.microedition.io.Connector.file.read, javax.microedition.io.Connector.file.write, javax.microedition.io.Connector.http, javax.microedition.io.PushRegistry
MIDlet-Push-1: autostart://:, Contactless, *
MIDlet-Vendor: Oracle
MIDlet-Version: 1.0
Manifest-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
4

3 回答 3

1

我以前从未听说过 MIDlet-Launch-Power-On。必须谷歌才能知道它是 Sprint 特定的 JAD 属性。

尝试使用自动启动 MIDlet 的标准方法:使用 PushRegistry。

在您的 JAD 文件中添加这两行,并删除 MIDlet-Launch-Power-On 属性。

MIDlet-Permissions: javax.microedition.io.PushRegistry
MIDlet-Push-1: autostart://:,NameOfMIDlet,*

看看这是否有所作为。

于 2013-05-04T14:00:54.767 回答
0

Oracle-MIDlet-Autostart:1 Oracle-MIDlet-Restart:假 Oracle-MIDlet-Restart-Count:10

于 2014-10-10T12:50:52.593 回答
0

只是这个问题的一个额外答案:

每个自动启动的 MIDlet 都需要通过其 jad 文件和以下属性进行配置:

  • Oracle-MIDlet-Autostart:[0-5],自动启动顺序。0 表示没有自动启动。对于具有相同级别的 MIDlet,未定义顺序。
  • Oracle-MIDlet-Restart:[true|false],如果为 true,则如果 MIDlet 非正常终止(例如由于未捕获的异常),则 MIDlet 会自动重新启动。
  • Oracle-MIDlet-Restart-Count: [number],在整个模块重新启动之前允许的 MIDlet 重新启动的数量
于 2015-12-15T06:24:02.627 回答