problemas con rms

cesquivel
20 de Abril del 2010
Hola, estoy desarrollando una aplicacion para moviles donde hago ingreso de datos y deseo ver la informacion ingresada. Hice un pequeño programa que me muestre pero no lo muestra. En todo caso, creo que la informacion se guarda en la memoria del celular. En mi caso estoy ejecutando en JAVAMe Plataform SDK 3.0. Mi pregunta es: en esta plataforma la informacion se guarda en algun archivo?. Gracias de antemano por la respuesta.

Cristian
20 de Abril del 2010
cuando trabajas con RMS la informacion se guarda dentro de la aplicacion que instalaste, osea que si borras la aplicacicion se borra la info tambien, este archivo no puedes verlo fisicamente ni nada, solo mediante codigo j2me.
cuando estas haciendo la aplicacion si puedes verlo fisicamente en tu pc, por lo general en la carpeta appdb/emuladorusado donde esta instalado el SDK, donde 'emuladorusado' logicamente es el emulador que estas ejecutando, si usas netbeans antes de ejecutar el emulador te dice cual es, ej:
"Running with storage root C:UsersPcsmartj2mewtk2.5.2appdbMediaControlSkin
"
si usas el sdk simplemente creo que tambien te dice

Denshi
20 de Abril del 2010
hola!!!, yo ya he implementado el rms, sin embargo necesito que guarde el valor de un contador después de cerrada la aplicación y al volverla a abrir siga contando, no logro hacer que funcione, alguien me podría ayudar, de ante mano muchas gracias. El codigo va asi:
private void abrirRecord(){
try {
recordS = RecordStore.openRecordStore(nombreRecord, true);
System.out.println(nombreRecord);
}catch (Exception e){
System.out.println("Error creacion:" + e);
}
}


private String leerRecord(){
String datos = "";
try {
RecordEnumeration recordenum = recordS.enumerateRecords(null, null, false);
System.out.println(recordenum);
while(recordenum.hasNextElement()){
datos = new String (recordenum.nextRecord());
}
}catch (Exception e){
System.out.println("Error leyendo:" + e);
}if (datos == null || datos.equals(""))//Si no hay datos en registro
return "3"; //Valor inicial de mesn
return datos;
}

public void guardarRecord(String datos){
try {
byte[] byteOutputData = datos.getBytes();
recordS.addRecord(byteOutputData, 0, byteOutputData.length);
System.out.println(recordS);
}catch (Exception e){
System.out.println("Error escribiendo:" + e);
}
}

private void cerrarRecord(){
try {
recordS.closeRecordStore();
cerrarRecord();
System.out.println(recordS);
}catch (RecordStoreNotOpenException ex){
//System.out.println("Error cerrando:" + e);
return;
}catch (RecordStoreException ex){
ex.printStackTrace();
}
}

private void borrarRecord(){
if (recordS == null){
return;
}
cerrarRecord();
try{
RecordStore.deleteRecordStore(nombreRecord);
}catch (RecordStoreNotFoundException ex){
//System.out.println("Error al borrar record:" + e);
ex.printStackTrace();
}catch (RecordStoreException ex){
ex.printStackTrace();
}

}

esta seccion es la de los comandos
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException{

}


public void commandAction (Command cmd, Displayable screen){

if (cmd == List.SELECT_COMMAND){
switch (((List)screen).getSelectedIndex()){
case 0:
showIntro();
break;
case 1:
showAyuda();
break;
case 2:
showInfo();
break;
case 3:
cmd = this.salir;
break;
}
//#debug
System.out.println("En uso" + cmd.getLabel());
}if (cmd == this.salir){
notifyDestroyed();
}if (cmd == ok){

}if (cmd == this.inicio){
Msn();
}else if (cmd == this.reg){

else if (cmd == this.enviar){
// Decrementa el numero de mensajes, este valor debe permanecer independientemente de si se sale del programa, para que, al volver a entrar se siga decrementando.
mesn--;
guardarRecord(String.valueOf(mesn));
System.out.println(mesn);
if (mesn>=0){
Process process = new Process(this);
process.start();
this.display.setCurrent(this.mainMenu);
}else
Mas();
}if (screen == this.masm){
if (cmd == this.pedir){
borrarRecord();
this.display.setCurrent(this.mainMenu);

}else
this.display.setCurrent(this.masm);
}
}