Probleme mit RMS

Status
Nicht offen für weitere Antworten.

Peter@Pan

Aktives Mitglied
Hallo Leute,


ich habe folgendes Problem. Ich habe mir ein kleines mobiles Haushaltsbuch geschrieben fürs Handy.
Die Daten der Konten werden per RMS gespeichert. Ich habe nun folgendes Problem:

Wenn ich eine neue (verbesserte Version) von meinem Programm auf dem Handy installieren, dann kann ich nicht mehr auf den RMS-Store der vorherigen Programm-Version zugreifen und verliere so alle Informationen :( .
Ist das normal wenn man mit RMS arbeitet? Oder liegt es an meinem Handy (6280) ? Oder an der Art wie ich die Jar auf dem Handy installiere (kopiere die Jar einfach auf die SD-Karte)?

Quellcode der Store-Methode:

Code:
        debugOut("Store" + buf.toString());
        ByteArrayOutputStream bout = new ByteArrayOutputStream();
        DataOutputStream      dout = new DataOutputStream( bout );
        dout.writeChars(buf.toString());
        RecordStore rs = null;
        try
        {
          byte[] data = bout.toByteArray();
          rs = RecordStore.openRecordStore(RS_NAME, false);  
              /* versucht den RecordStore "Konto" zu öffnen. 
              Falls dies nicht gelingt wird eine RecordStoreException geworfen.*/
          rs.setRecord( 1, data, 0, data.length ); 
              
        }
        catch(RecordStoreException e) 
        {// wird geworfen falls der Recordstore nicht existiert.
           try
            {
              byte[] data = bout.toByteArray();
              rs = RecordStore.openRecordStore(RS_NAME, true);  
                      /* versucht den RecordStore "Konto" zu öffnen. 
                      Ist der 2. Parameter true, wird der Recordstore erstellt 
                      falls er nicht schon existiert.*/
              rs.addRecord( data, 0, data.length ); 
                      // fügt dem RecordStore einen neuen Record mit den Daten hinzu.
            }
            catch(RecordStoreException e1) 
            {// wird geworfen falls kein Store oder kein Record erstellt werden kann.
               e1.printStackTrace();
            }
        }
        finally  
        {
          try
          {
             dout.close();
             bout.close();
             if( rs != null )
             rs.closeRecordStore();
           }
          catch( Exception e )
          {
             e.printStackTrace();
          }
        }
        debugOut("stored");
    }



Quellcode der Load-Methode:



Code:
        RecordStore rs = null;
        ByteArrayInputStream bin = null;
        DataInputStream din = null;
        try
        {
            rs = RecordStore.openRecordStore(RS_NAME, false);
            byte[] data = rs.getRecord( 1 );
            if(data == null)
            {
                return;
            }
            bin = new ByteArrayInputStream(data );
            din = new DataInputStream( bin );
            char buf;
            StringBuffer bu = new StringBuffer();
            try{
            while((buf = din.readChar()) != -1)
            {
                
                
                
                if(buf == '?')
                {
                    
                   debugOut("Buffer is " + bu.toString()); 
                   
                   String[] s = this.spilt(bu.toString(),'=');
                  
                   if("konto".equals(s[0]))
                   {
                       debugOut("Load Konto");   
                       Konto k = new Konto(s[1]);
                       this.kontos.addElement(k); 
                     
                   }
                   
                   if("item".equals(s[0]))
                   {
                       debugOut("Load Item");
                       String[] a = this.spilt(s[1],'|');
                       Konto_Item item = new Konto_Item(a[0],Float.parseFloat(a[1]),a[2],a[3],a[4]);
                       Konto k = (Konto)this.kontos.lastElement();
                       debugOut("Add item " + item.toString() + " to konto " + k.getLable());
                       try {
                                k.addItem(item);
                       } catch (ValidateException ex) {
                                ex.printStackTrace();
                       }
                      
                   }
                   
                   bu.delete(0,bu.length());
                    
                }
                else{
                    bu.append(buf);
                }
            }
            }catch(java.io.EOFException w)
            {
                //do nothing 
               // Kenne halt nicht das EOF Zeichen ;)
            }
            
            
            rs.closeRecordStore();
            
            
        }catch(RecordStoreException e) 
        {// wird geworfen falls der Recordstore oder der Record nicht existiert. 
            //e.printStackTrace();
        }
    
    debugOut("loaded");
 

BlueJava

Mitglied
"Wärme" mal diesen Eintrag auf. Kann jemand helfen? Habe gelesen, dass verschiedene Midlets aus einer MidletSuite auf verschiedene (oder nur einer?) Recordstores zugreifen können. Wie ist es nun, wenn man eine Art Update bzw. eine neue Midlet hinzufügen möchte? Ich muß die jeweiligen Daten aus dem schon vorhandenen RecordStore beibehalten. Kann jemand helfen?
 

The_S

Top Contributor
Ob die Daten bei einer Neuinstallation vorhanden bleiben oder nicht, hängt vom Handy ab. Beim LG KC910 und beim Nokia N95 ist es bspw. so, dass man bei einer Neuinstallation explizit gefragt wird, ob man dei alten Daten behalten möchte.
 

BlueJava

Mitglied
Ok,
danke. Wie realisiere ich dnn dann ein mögliches Update? Ich müsste dann ja die Daten vom Handy auf Server zwischenspeicher, Neuinstallation und dann die Daten wieder aufs Handy,oder?
 

The_S

Top Contributor
Könnte man so machen. Eine Alternative wäre, die Daten auf irgendeiner Weise (bspw. über die FileConnection API) durch den User sichern zu lassen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Android Probleme mit BLE-Notify Android & Cross-Platform Mobile Apps 2
J Android Probleme mit der Realm Datenbank Android & Cross-Platform Mobile Apps 3
J Android Probleme mit Navigation-Fragments? Android & Cross-Platform Mobile Apps 0
N Probleme mit custom dynamic ListView Android & Cross-Platform Mobile Apps 15
B Android Probleme mit Android Studio Android & Cross-Platform Mobile Apps 6
B Android Probleme mit Realm Datenbank Android & Cross-Platform Mobile Apps 2
B Android Probleme mit ArrayList Android & Cross-Platform Mobile Apps 6
J Android Probleme mit FileProvider Android & Cross-Platform Mobile Apps 1
B Probleme mit Firebase Authentication Android & Cross-Platform Mobile Apps 25
H Android Probleme mit SearchView in ArrayAdapter Android & Cross-Platform Mobile Apps 7
ATZENPOWER Android Probleme mit mobilen Daten via lte Android & Cross-Platform Mobile Apps 10
S Android Probleme beim Verbinden mit einer HTTPS Seite Android & Cross-Platform Mobile Apps 4
B Android Probleme mit RealmObject? Android & Cross-Platform Mobile Apps 1
M Android ExpandableListView merkwürdige Probleme Android & Cross-Platform Mobile Apps 20
F Probleme mit Google-Maps Android & Cross-Platform Mobile Apps 0
B Android Probleme mit ViewPager? Android & Cross-Platform Mobile Apps 5
J Probleme mit ViewPager und Activity Android & Cross-Platform Mobile Apps 1
B Android Probleme mit Eclipse? Android & Cross-Platform Mobile Apps 6
E MAVLINK Probleme Android & Cross-Platform Mobile Apps 1
C Android Probleme mit JavaMail Android & Cross-Platform Mobile Apps 5
B Android Probleme mit Facebook-SDK? Android & Cross-Platform Mobile Apps 1
D Android Probleme mit info/warning (1, 902) Android & Cross-Platform Mobile Apps 4
D Android Gallery Probleme Android & Cross-Platform Mobile Apps 3
B Probleme mit App auf Galaxy S3? Android & Cross-Platform Mobile Apps 13
S Hat der AVD-Manager Probleme mit GPS? Android & Cross-Platform Mobile Apps 5
P Probleme mit xml-Layout Android & Cross-Platform Mobile Apps 2
P Android Probleme mit Spinner Android & Cross-Platform Mobile Apps 3
F Layout mit listViews (Scrolling-Probleme) Android & Cross-Platform Mobile Apps 2
A Android Probleme mit Dialog Android & Cross-Platform Mobile Apps 4
U SQLite-Datenbank Probleme Android & Cross-Platform Mobile Apps 8
T Android Probleme bei Facebook Integration Android & Cross-Platform Mobile Apps 5
tfa Android Layout-Probleme: View programmatisch erweitern (addContentView) Android & Cross-Platform Mobile Apps 7
A Probleme mit ListView / ArrayAdapter Android & Cross-Platform Mobile Apps 3
A Probleme mit Form.isShown Android & Cross-Platform Mobile Apps 9
A Probleme mit Calendar auf dem Handy Android & Cross-Platform Mobile Apps 3
U Probleme mit der drawString Methode bei Canvas Android & Cross-Platform Mobile Apps 8
P Probleme mit dem Deployment Android & Cross-Platform Mobile Apps 3
P Probleme mit Streams Android & Cross-Platform Mobile Apps 4
C 2 kleine Probleme (Datei lesen, String durchsuchen) Android & Cross-Platform Mobile Apps 16
G Proguard Obfuscator macht Probleme Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben