Использование API обработчика содержимого (JSR 211) для открытия приложений - PullRequest
1 голос
/ 13 октября 2010

Я хочу иметь возможность запускать собственные приложения и приложения J2ME через мое приложение с помощью API обработчика содержимого (JSR 211) на Nokia 6212.

В настоящее время я не могу этого сделать, так каквсегда заявляет, что «Обработчик содержимого не найден» и выдает 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();
    }
}

1 Ответ

1 голос
/ 18 мая 2011

Попробуйте:

Registry register = Registry.getRegistry(this.getClass().getName());

Вы должны вызвать Registry.getRegistry для наследника мидлета.Просто используйте ваш мидлет для получения имени класса.

...