黑莓 - 平台版和软件版

时间:2010-11-01 05:40:56

标签: blackberry java-me

我使用的是BlackBerry型号8707,我正在尝试使用DeviceInfo.getPlatformVersion()和DeviceInfo.getSoftwareVersion()。但是,结果没有显示在8707模拟器上,但它在9550模拟器上工作得非常好。

如何使其与8707一起使用?

public RetrieveData() {

    display = Display.getDisplay(this);     

    String imei = IDENInfo.imeiToString(IDENInfo.getIMEI());
    info01 = new TextField("IMEI:", imei, 30, TextField.ANY);

    String imsi = new String();
    try {
        imsi=GPRSInfo.imeiToString(SIMCardInfo.getIMSI(), false);
    } catch (SIMCardException ioe) {}

    info02 = new TextField("IMSI:", imsi, 30, TextField.ANY);

    String majorOS = DeviceInfo.getPlatformVersion(); 
    info03 = new TextField("majorOS:", majorOS, 30, TextField.ANY);

    String content = DeviceInfo.getSoftwareVersion();
    info04 = new TextField("Software version", content, 30, TextField.ANY);
}

2 个答案:

答案 0 :(得分:4)

您可以使用此方法获取几乎所有黑莓装置的版本:

public static String getJDEVersion() {
         //USING THE APPLICATION MANAGER
         //(RUNNING APPS)

         //get the ApplicationManager

         ApplicationManager appMan = ApplicationManager.getApplicationManager();

         //grab the running applications
         ApplicationDescriptor[] appDes = appMan.getVisibleApplications();
         //check for the version of a standard

         //RIM app. I like to use the ribbon app but you can check the version of 
         //any RIM module as they will all be the same.
        int size = appDes.length;
        for (int i = size-1; i>=0; --i){
            if ((appDes[i].getModuleName()).equals("net_rim_bb_ribbon_app") ){
            return appDes[i].getVersion();

            }
        }

        return null;
}

答案 1 :(得分:1)

8707模拟器在运行什么操作系统版本?您编写的操作系统级别是多少?从DeviceInfo javadocs中,您可以看到{4.0}及更高版本中的DeviceInfo.getPlatformVersion()方法可用,而OS 4.3.0及更高版本中提供了DeviceInfo.getSoftwareVersion()方法。因此,如果您正在使用JDE 4.3进行编译,但尝试在操作系统版本低于4.3的设备模拟器上运行它,那么您将遇到问题。

编辑:4.3之前设备的解决方法是使用以下代码:

int mh = CodeModuleManager.getModuleHandle("net_rim_bb_phone_api");
String version = CodeModuleManager.getModuleVersion(mh);