我有一个在Blackberry设备上运行的Gui-Application和Background-Service, 我需要实现Sms监听器,它会在确认SMS到达设备之后调用一些后台服务方法,之后它将再次进入休眠状态。
我已将类添加到我的应用程序中,看起来就是这样。
import javax.microedition.midlet.*;
import javax.wireless.messaging.*;
public class SmsListener extends MIDlet implements MessageListener {
public void notifyIncomingMessage(MessageConnection conn) {
}
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException {
}
protected void pauseApp() {
}
public void startApp() throws MIDletStateChangeException {
System.out.println("Hello from midlet");
}
}
当我想发起它时,它会给我一个SecurityException
我可能不是正确的方式吗?
我如何在应用程序的那种(Gui-Application和Background-Service)中实现Listener的这种(Sms监听器)? PS:我如何在模拟器中测试它,我如何模拟在EMULATOR中接收的短信??? 提前谢谢。
答案 0 :(得分:0)
如果您的MIDlet执行敏感操作(如打开连接等),您必须对其进行签名,否则每次都会询问用户权限,从而提供可怕的用户体验。每个手机品牌都是如此,不仅仅是黑莓手机。
在BlackBerry中,您可以将应用程序开发为MIDlet,将jar转换为cod文件,并使用BlackBerry Codesigning Keys进行签名。这种打包为cod文件的MIDlet格式是有些人称之为RIMlet的。
您可以在BB论坛上找到更多信息。另请查看本教程: http://supportforums.blackberry.com/t5/Java-Development/Using-MIDLets-on-BlackBerry/ta-p/442789
答案 1 :(得分:0)
为什么不在Oracle文档中使用该示例?短信是JSR 120
。下载包含示例的this pdf about JSR 120。