|
|
Développez sur mobile - Page 4 |
Page 4 sur 8 La persistance des données Il est possible de stocker les données de 2 manières : soit en utilisant le RMS (Record Management Store), soit en utilisant le système de fichiers. Dans le premier cas (RMS), le package javax.microedition.rms livré avec MIDP 2.0 donne accès à une sorte de mini base de données. Chaque MIDlet aura accès à ses données et uniquement à ses données. Aucune autre application ne peut y avoir accès. Les jeux notamment stockent les « high scores » avec ce système. L’autre solution est d’utiliser un système de fichiers classique. Pour cela, il faut que le téléphone portable supporte l’option « JSR 75 FileConnection ». L’avantage de cette solution est que les données soient ensuite récupérables sur votre PC. Un des objectifs de l’application que je voulais créer, était de pouvoir récupérer les données saisies sur PC, afin de pouvoir les retraiter via Excel par exemple…
Le chemin complet d’un fichier est de la forme « file:///c:/nokia/Images/Image001.jpg ». Le préfixe file:/// indique que l’on travaille sur un fichier, et «c:/» correspond à la mémoire interne. La carte mémoire correspond au lecteur «e:/ ». Ecrire un fichier, oui, mais dans quel dossier ? Il faut avoir la permission. La solution que j’ai choisi est d’utiliser le dossier photo de mon mobile afin d’y déposer mon fichier de données. Ce dossier est un dossier « public ».
Le code suivant permet de récupérer une connexion en lecture et écriture au fichier de données : // Récupére le dossier des photos String url = System.getProperty("fileconn.dir.photos"); // Rajoute le nom du fichier url = url + "NokiaEssence.txt"; // Récupére la connexion mainFileConnection = (FileConnection) Connector.open( url, Connector.READ_WRITE ); La classe FileConnection permet l'accès au système de fichier d'une manière générale : elle permet de lister, supprimer, obtenir des informations sur les fichiers, etc. L'accès au fichier s'effectue à l'aide des flux : InputStream en lecture et OutputStream en écriture. Voici un exemple de code pour créer le fichier :
public void WriteToFileString(String aStringToWrite) { // Crée le fichier mainFileConnection .create(); // Récupére le flux en écriture OutputStream os = mainFileConnection .openOutputStream(); // Ecrit dans le fichier os.write(aStringToWrite.getBytes()); // Vide le cache os.flush(); // Ferme le fichier os.close(); }
L'option JSR 75 ne se limite pas à l'accès au système de fichiers. Elle fournit une 2ème API nommée PIM (Personal Information Management). Cette API permet l'accès aux données personnelles (Contacts/Liste des numéros de téléphone, Agenda/Calendrier, Liste des choses à faire) depuis la mémoire interne du téléphone ou la carte SIM. Voici un petit exemple de code pour lister les contacts :
PIM pim = PIM.getInstance(); int i = 0; try { ContactList cl= (ContactList)pim.openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY ); Enumeration e=cl.items(); while(e.hasMoreElements() ) { // Récupère un contact Contact contact = (Contact)e.nextElement(); // Pour récupérer un N° de téléphone par exemple : // String tel= contact.getString( Contact.TEL, 0 ); i++; } System.out.println(i+" téléphones trouvés."); } catch(PIMException pime) { System.out.println("Aucun contact trouvé"); } catch(SecurityException se ) { System.out.println("L'application n'a pas la permission d'accéder à la liste"); }
|
|
|
|