您的位置:首页 > 产品设计 > UI/UE

获得手机当前的所有内容处理者(Contenthandler)的信息

2009-04-19 13:55 477 查看
步骤:

     1. 获得Registry类的一个实例

     2.获得所有已注册的内容处理者的ID

     3.通来ID获取内容处理者的实例,并显示其信息

开发环境:JBuilder + WTK2.5.1

代码如下:

package com.scholar.luo;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.content.Registry;
public class MainMIDlet extends MIDlet {
static MainMIDlet iMIDlet;
MessageForm iForm = null;
public MainMIDlet() {
iMIDlet = this;
//获得Registry档案室的实例
//Registry.getRegistry(this.getClass().getName())
iForm = new MessageForm(Registry.getRegistry(this.getClass().getName()));
}
public void startApp() {
Display.getDisplay(this).setCurrent(iForm);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public static void quitApp() {
iMIDlet.destroyApp(true);
iMIDlet.notifyDestroyed();
iMIDlet = null;
}
}


 

package com.scholar.luo;
import javax.microedition.lcdui.*;
import javax.microedition.content.Registry;
import javax.microedition.content.ContentHandler;
import javax.microedition.content.ActionNameMap;
public class MessageForm extends Form implements CommandListener {

Registry iRegistry = null;
public MessageForm(Registry aRegistry) {
super("内容处理者的信息");
iRegistry = aRegistry;
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {

//获得档案室的内容处理者的ID
String[] sHandlerIDs = iRegistry.getIDs();
//循环通来ID获得内容处理者的实例并显示相应的信息
for (int i=0; i<sHandlerIDs.length; i++) {
ContentHandler sHandler = iRegistry.forID(sHandlerIDs[i], true);
this.append( "[" + i + "] 应用程序名:" + sHandler.getAppName() + "/n");
//处理内容的类型
for (int j=0; j<sHandler.getTypeCount(); j++) {
this.append("  处理类型[" + j + "]:" + sHandler.getType(j) + "/n");
}
//处理内容内的后缀
for (int k=0; k<sHandler.getSuffixCount(); k++) {
this.append("  处理后缀[" + k + "]:" + sHandler.getSuffix(k) + "/n");
}
//处理的动作与动名
ActionNameMap sNameMap = sHandler.getActionNameMap();
if (sNameMap != null) {
for (int n=0; n<sNameMap.size(); n++) {
this.append("  动作[" + n + "]:" + sNameMap.getAction(n) + "动作名[" + n + "]:" + sNameMap.getActionName(n) + "/n");
}
}

}

// Set up this Displayable to listen to command events
setCommandListener(this);
// add the Exit command
addCommand(new Command("退出", Command.EXIT, 1));
}
public void commandAction(Command command, Displayable displayable) {
/** @todo Add command handling code */
if (command.getCommandType() == Command.EXIT) {
// stop the MIDlet
MainMIDlet.quitApp();
}
}
}


 

运作效果如下(运行过wtk的CHAPIDEO):



 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息