2010-01-30 34 views
2

请注意,这是一个关于MIDlet的问题,即Java ME(不是“普通”Java SE)。如何使用JSR 211 CHAPI(Content Handler API)打开文件

我正在寻找使用JSR 211(即CHAPI - Content Handler API)在手机上调用内容的正确方法。我总是会在下面的代码中遇到IOException。我正在运行的手机支持JSR 211(这是一款索尼爱立信C902)。

doInvoke("file:///e:/jpgimage.jpg"); //earlier in the code 

void doInvoke(final String url) { 
    (new Thread() { 
     public void run() { 
      try { 
       Registry registry = Registry.getRegistry(this.getClass().getName()); 
       Invocation invoc = new Invocation(url); 
       invoc.setAction(ContentHandler.ACTION_OPEN); 
       boolean mustExit = registry.invoke(invoc); 
       if (mustExit) { 
        notifyDestroyed(); 
       } else { 
        // stay put 
       } 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
     } 
    }).start(); 
} 
+0

我遇到了类似的问题,只是一个简单的问题。为什么你想要在一个线程中执行调用。无论如何,它不会只运行一次吗? – binarycreations 2010-10-13 11:16:44

+0

很久以前我问了这个问题,所以我不能说我记得我的决定。我想我想避免在UI线程中运行调用,或者至少在我的问题中显示我不是。 – darius 2010-10-13 13:21:11

回答

1

仅仅因为手机支持CHAPI,并不意味着它可以专门处理通过Java“file://”URL访问的.jpg文件。

当手机制造商直接确认它支持您正在尝试做的事情时,您应该只使用CHAPI。

在C902的情况下,最好将.jpg url(或者看起来更像“/memorycard/jpimage.jpg”,即不是Java URL本身)的东西发送到手机媒体中心的Content-Handler-ID。

+0

不确定你的意思。代码片段将非常感激。 – darius 2010-02-05 23:01:06