我希望能够使用诺基亚6212上的内容处理程序API(JSR 211)通过我的应用程序启动本机和J2ME应用程序。
目前,我无法这样做,因为它始终声明“找不到内容处理程序”并抛出javax.microedition.content.ContentHandlerException
。
目前,我正试图让手机启动其浏览器并转到某个网站,只是为了测试我可以使用该框架。我尝试了很多不同的Invocation
对象:
//throw exceptions
new Invocation("http://www.somesite.com/index.html",
"application/internet-shortcut");
new Invocation("http://www.google.co.uk","text/html");
// a long shot, I know
new Invocation("http://www.somesite.com/text.txt","text/plain");
// massive long shot
new Invocation("http://www.google.co.uk","application/browser");
//appears to download the link and content (and definitely does in the Nokia
// emulator) and then throws an exception
new Invocation("http://www.google.co.uk");
new Invocation("http://www.somesite.com/index.html");
以下是我一直使用的代码,请记住经常更改的参数以生成不同的Invocation
对象。
/*
* Invokes an application using the Content Handler API
*/
public void doInvoke(String url, String mime, String payload){
Registry register = Registry.getRegistry(this.getClass().getName());
Invocation invoke = new Invocation(url, mime, null, false,
ContentHandler.ACTION_OPEN);
boolean mustQuit = false;
try {
mustQuit = register.invoke(invoke);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (ContentHandlerException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if(mustQuit){
this.quit();
}
}
答案 0 :(得分:1)
试试这个:
Registry register = Registry.getRegistry(this.getClass().getName());
您必须为MIDlet继承者调用Registry.getRegistry
。只需使用您的MIDlet获取类名。