在索尼爱立信JP7平台上自动启动MIDlet2007-05-30 j2medev 开机就能自动启动MIDlet一直是J2ME开发者的梦想,这一梦想在索尼爱立信的JP7平台上实现了。不过需要注意的是早期的几款机型不支持,比如K790等。具体请参考索尼爱立信的手册。开机自启动功能是通过Push注册来完成的,因此可以使用两种方式来注册。第一种通过在jad文件注明PUSH注册的方式即可,如下。//MIDlet-Push-<n>: <ConnectionURL>, <MIDletClassName>, <AllowedSender> MIDlet-Push-1: autostart://:, AutoStartStatic, *请注意URL的写法是autostart://: 如果想动态注册,可以通过下面的方法。//Registers the pushRegistry public void Register(){ // List of registered push connections. String connections[]; // Check to see if the connection has been registered. // This is a dynamic connection allocated on first // time execution of this MIDlet. connections = PushRegistry.listConnections(false); if (connections.length == 0) { try { //Register so the MIDlet will wake up when phone is started. PushRegistry.registerConnection("autostart://:", "AutoStartDyn", "*"); sDisplayString = "MIDlet is registered"; } catch (Exception ex) { System.out.println("Exception: " + ex); sDisplayString = "Fail: " + ex; } } else { sDisplayString = "Already registered"; } displayForm.deleteAll(); displayForm.append(sDisplayString); }//Unregisters the pushRegistry public void Unregister(){ if (PushRegistry.unregisterConnection("autostart://:")){ System.out.println("The pushRegistry is unregistered"); sDisplayString = "MIDlet is unregistered."; }else{ System.out.println("There is no pushRegistry to unregister"); sDisplayString = "No MIDlet to unregister or failed to unregister"; } displayForm.deleteAll(); displayForm.append(sDisplayString); }由于手头没有SonyEricsson JP7平台的手机,因此没有办法测试开机自动启动功能。有条件的可以自己测试一下。原文地址:http://developer.sonyericsson.com/site/global/techsupport/ tipstrickscode/java/p_autostarting_jp7midlets.jsp