Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Como recuperar o número da versão do Java Runtime para S60

From Wiki
Jump to: navigation, search
Article Metadata

Exemplo de código
Compatibilidade
Artigo
Tradução:
Por maiconherverton
Última alteração feita por hamishwillee em 15 Aug 2013

Contents

Resumo

Dispositivos Nokia S60 vem equipados com uma implementação do Java Platform Micro Edition (ME), declarado como Java Runtime xy para S60, ou tampouco JRT xy. A partir das implementações S60 3ª Edição FP2 o Java é versionado separadamente da plataforma S60 subjacente. Por exemplo, o Java Runtime 1.3 para S60 (JRT 1,3) é o transporte de versão atual com o Nokia 5800 XpressMusic (SW 20.0.012 e seguintes). A versão exata devolvida pelo ambiente Java é 1.3.4. Haverá liberação de documentos de nota disponível na página wiki do Fórum Nokia, que explicam as características da versão em detalhes. Por favor, leia o link "Veja também" abaixo para mais informações.

Atualmente a versão do JRT pode ser verificada através do sistema de propriedade padrão MIDP "microedition.platform". Por exemplo, na S60 5ª Edição em aparelho Nokia 5800 XpressMusic essa propriedade retorna ao sistema:

NokiaN5800d-1/20.0.012/sw_platform=S60;sw_platform_version=5.0;java_build_version=1.3.4

Aqui está um trabalho completo mostrando o código MIDlet abaixo. O VersionMIDlet lê a propriedade do sistema e analisa os detalhes (dispositivo, a sua versão de software, plataforma e sua versão e a versão JRT) e os imprime na tela.

Source code: VersionMIDlet.java

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
 
/**
* <p>Título: VersionMIDlet</p>
* <p>Descrição: Este MIDlet mostra o valor da "microedition.platform"
* propriedade do sistema e também os valores analisados os detalhes nele. Ele usa
* Os métodos na classe PlatformDetails para a análise.</p>
*/

 
public class VersionMIDlet extends MIDlet implements CommandListener {
private Form form;
private Command exitCommand;
private PlatformDetails details;
private String device = "";
private String sw = "";
private String platform = "";
private String platform_version = "";
private String java_version = "";
 
public void startApp() {
form = new Form("VersionMIDlet");
exitCommand = new Command("Exit", Command.EXIT, 1);
form.addCommand(exitCommand);
form.setCommandListener(this);
details = new PlatformDetails();
device = details.getDeviceName();
sw = details.getSwVersion();
platform = details.getPlatform();
platform_version = details.getPlatformVersion();
java_version = details.getJavaVersion();
form.append("microedition.platform = " + details.platformString + "\n\n");
form.append("Device: " + device + "\n");
form.append("Software version: " + sw + "\n");
form.append("Platform: " + platform + "\n");
form.append("Platform version: " + platform_version + "\n");
form.append("Java Runtime for S60: " + java_version + "\n");
Display.getDisplay(this).setCurrent(form);
}
 
public void pauseApp() {
}
 
public void destroyApp(boolean unconditional) {
}
 
public void commandAction(Command c, Displayable d) {
if (c == exitCommand) this.notifyDestroyed();
}
}


Código fonte: PlatformDetails.java

/**o
* <p>Títul: PlatformDetails</p>
* <p>Descrição: Esta classe contém métodos para analisar os detalhes do
* valor da propriedade do sistema "microedition.platform". Na S60 3ª ed. FP2 (e mais recentes)
* Não há informações sobre o nome do dispositivo, versão de software, plataforma de software e sua
* Versão e a versão Java.</p>
* <p> Por exemplo em aparelhos S60 3.2 N85 esta é a propriedade do sistema o pedido poderia retornar:
* NokiaN5800d-1/20.0.012/sw_platform=S60;sw_platform_version=5.0;java_build_version=1.3.4</p>
* <p> Nos dispositivos mais antigos S60 (Series 40 e celulares) o valor devolvido é tipicamente
* Algo assim (mostrando o modelo do dispositivo e a versão do SW):
* NokiaE71-1/0.07.76</p>
* <p> Neste caso, os valores devolvidos para outros detalhes do nome do dispositivo e versão SW
* São "N/A".</p>
*/

public class PlatformDetails {
protected String platformString = System.getProperty("microedition.platform");
private int length = platformString.length();
 
public String getDeviceName() {
String device = "";
String string = "";
int index = 0;
char c = 'a';
while (device.equals("")) {
c = platformString.charAt(index);
if (c != '/') {
string += c;
index++;
}
else device = string;
}
return device;
}
 
public String getSwVersion() {
String sw = "";
String string = "";
int index = 0;
char c = 'a';
while (true) {
c = platformString.charAt(index);
if (c != '/') index++;
else break;
}
index++;
c = 'a';
while (c != '/') {
c = platformString.charAt(index);
string += c;
if (index < length) index++;
if (index == length) {
sw = string;
break;
}
}
if (sw.equals("")) sw = string.substring(0, string.length()-1);
return sw;
}
 
public String getPlatform() {
String platform = "";
String sw_platform = "sw_platform";
String test = "";
String s60 = "";
int sw_length = sw_platform.length();
int index = 0;
while (platform.equals("")) {
test = platformString.substring(index, index + sw_length);
if(test.equalsIgnoreCase(sw_platform)) {
index = index + sw_length + 1;
s60 = platformString.substring(index, index + 3);
if (s60.equalsIgnoreCase("s60")) platform = s60;
else platform = "N/A";
}
if (index < (length-sw_length)) index++;
else platform = "N/A";
}
return platform;
}
 
public String getPlatformVersion() {
String platformVersion = "";
int index = platformString.length()-1;
char c = 'a';
char temp_c = 'a';
while (platformVersion.equals("")) {
c = platformString.charAt(index);
if (c == ';') {
String temp = "";
int temp_i = index-1;
while (temp.equals("")) {
temp_c = platformString.charAt(temp_i);
if (temp_c == '=') temp = platformString.substring(temp_i + 1, index);
if (temp_i > 0) temp_i--;
}
platformVersion = temp;
}
if (index > 0) index--;
else platformVersion = "N/A";
}
return platformVersion;
}
 
public String getJavaVersion() {
String version = "";
String java = "java";
String test = "";
int index = length;
while (version.equals("")) {
test = platformString.substring(index - 4, index);
if(test.equalsIgnoreCase(java)) {
int c_index = 0;
int temp = 0;
char c;
for (int i = 1; i<12; i++) { // the version format is xxx.y.zzzzz
temp = length - i;
c = platformString.charAt(temp);
if (c == '=') c_index = temp;
}
version = platformString.substring(c_index + 1);
}
if (index > 4) index--;
else version = "N/A";
}
return version;
}
}

Há também os arquivos VersionMIDlet.jad e VersionMIDlet.jar disponíveis aqui.

Exemplo da aplicação

Veja também

This page was last modified on 15 August 2013, at 06:23.
177 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×