Développez sur mobile - Page 4
Index de l'article
Développez sur mobile
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
Page 8
Toutes les pages

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");
}