2010-11-01 16 views
2

J'utilise un BlackBerry modèle 8707 et j'essaie d'utiliser DeviceInfo.getPlatformVersion() et DeviceInfo.getSoftwareVersion(). Cependant, le résultat n'est pas affiché sur le simulateur 8707 mais il fonctionne parfaitement sur le simulateur 9550.Blackberry - version de la plate-forme et version du logiciel

Comment puis-je le faire fonctionner avec le 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); 
} 
+0

un petit exemple de code montrant comment vous utilisez les méthodes DeviceInfo serait utile. Modifiez votre question pour l'ajouter. –

Répondre

4

vous pouvez utiliser cette méthode pour obtenir la version de presque tous les appareils de baies noires:

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

Quelle est la version du système d'exploitation exécutée par le simulateur 8707? Et quel niveau d'OS compilez-vous? A partir des javadocs DeviceInfo, vous pouvez voir que la méthode DeviceInfo.getPlatformVersion() est disponible dans OS 4.0.0 et supérieur, tandis que la méthode DeviceInfo.getSoftwareVersion() est disponible dans OS 4.3.0 et supérieur. Donc, si vous compilez avec JDE 4.3 mais que vous essayez de l'exécuter sur un simulateur de périphérique avec une version de système d'exploitation inférieure à 4.3, vous allez rencontrer des problèmes.

EDIT: une solution de contournement pour les appareils pré-4.3 est d'utiliser le code suivant:

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

Le simulateur 8707 fonctionne le 4.2.1.94. De plus, lorsque j'ajoute les codes à mon appareil lui-même, il me montre l'exception Uncaught: Exception lancée dans un constructeur midlet. Si je ne peux pas utiliser DeviceInfo, que puis-je utiliser à la place? – JohnDoe4136

+0

Vous pouvez utiliser DeviceInfo, juste pas DeviceInfo.getSoftwareVersion() –

+0

Note - juste édité ma réponse pour inclure le code qui fait la même chose que getSoftwareVersion() pour les appareils fonctionnant sous OS avant 4.3 –