Notre régie publicitaire experte des nouvelles technologies
juin1211:23

Tutorial : Accéder à la carte SD

Ce cour tutorial va vous expliquer comment utiliser la Carte SD dans vos développements.

Le première chose à savoir est qu’Android voit la carte SD comme un dossier dans l’arborescence Linux. Ce dossier se situe à la racine. Le chemin est donc /sdcard/.

Par défaut, l’émulateur est un téléphone sans carte SD donc la première étape de ce tutorial consiste en la création d’une carte SD.

Pour ce faire, ouvrez une console (sous Windows, démarrer -> exécuter « cmd.exe ») et tapez la commande suivante :

mksdcard -l label 8192M <chemin>/SDCard

Note : Si votre console vous répond que l’exécutable est introuvable, c’est que vos variables d’environnement ne prennent pas en compte le dossier tools du SDK. Soit vous rêglez le problème en suivant le tutorial d’installation, soit vous vous rendez dans le bon dossier pour taper votre ligne de commande (sous Linux il faudra alors la faire précéder de « ./ »).

8192M représente 8Go de données. Cela peut donc prendre du temps. Vous pouvez bien entendu utiliser un autre chiffre. SDCard sera le fichier image de votre carte SD.

L’outil mksdcard ne permet malheureusement pas de remplir l’image de la carte SD avec des fichiers. Nous allons donc utiliser l’émulateur pour cela.

Démarrez l’émulateur à partir de la console avec la ligne suivante :

emulator -sdcard <chemin>/SDCard

L’émulateur devrait démarrer et s’initialiser.

Note : Il peut arriver que l’émulateur refuse de démarrer de cette façon. Dans ce cas, lancez Eclipse, faîtes un nouveau projet Android et exécutez le en prenant bien soin de préciser dans la configuration la ligne de commande. Cette étape sera détaillée peu après dans le tutorial. L’émulateur devrait démarrer

Ouvrez maintenant une autre ligne de commande et utilisez la ligne suivante :

adb push <local> /sdcard/

où local représente le chemin d’un fichier que vous voulez ajoutez à votre carte SD virtuelle. Renouvellez l’opération avec tout les fichiers que vous voulez ajouter.

Votre carte SD est prète. Reste à l’exploiter.

Pour cela, démarrez Eclipse et faîtes un nouveau projet. Vous devrez vous retrouver avec le code suivant :

public class hello extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

Commentez la ligne setContentView(R.layout.main); ou supprimez la. Nous n’en aurons pas besoin.

Créez la méthode suivante :

public void listerSDCard(){

//code

}

Déclarez à l’intérieur de la méthode les variables suivantes :

File rep = new File(« /sdcard »);

String [] liste;

String txt = new String(«  »);

int i;

Nous allons maintenant utiliser la méthode list() de l’objet File qui permet, si l’objet désigne un dossier, de lister tout ce qu’il contient. Rien de très complexe donc :

liste=rep.list();

for(i=0;i<liste.length;i++){

txt = txt + liste[i] + « n »;

}

Le code est extrêmement simple. On fait juste une boucle sur les éléments contenus dans le répertoire et on récupère ça dans la chaine de caractère txt.

Maintenant, on va vouloir l’afficher dans notre application Android. Pour cela on va utiliser le widget TextView :

TextView tv = new TextView(this);

[...]

tv.setText(txt);

setContentView(tv);

Il ne reste plus qu’à appeler la méthode et faire un petit ctrl+maj+O sous Eclipse (remplit les dépendances automatiquement), et vous obtenez le code suivant :

import java.io.File;

import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;

public class hello extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//setContentView(R.layout.main);

this.listerSDCard();

}

public void listerSDCard(){

File rep = new File(« /sdcard »);

String [] liste;

String txt = new String(«  »);

int i;

TextView tv = new TextView(this);

liste=rep.list();

for(i=0;i<liste.length;i++){

txt = txt + liste[i] + « n »;

}

tv.setText(txt);

setContentView(tv);

}

}

Dont voici le résultat :

  • Tutorial : Se servir de l’accéléromètre
  • Tutorial : Passer votre Sciphone N21 sur Donut
  • Forsha Posh Pad MV7, une tablette 7 pouces sous Android avec slot carte sim 3G !
  • Tutorial : T-Mobile G1 fonctionne sur le réseau SFR
  • Tutorial : Envoyer ses coordonnées avec un code barre
  • Avez-vous aimé cet article ? Dites-le !

    Tweeter ce sujet android Buzzer ce sujet android ! Partager ce sujet android sur Facebook

    RSS des commentaires

    3 commentaires

    1. eric.du-58 dit :

      bonjour je viens d’essayer ce qui est marqué au dessus mais à chaque fois il me marque (le fichier spécifer est intouvable quelqu’un peut il m’aider
      J’aimerais pouvoir télécharger un programme genre adobe pdf pour pouvoir télécharger mes journaux qui font plus de 10 mo
      SVP d’avance merci.

    2. JBQ dit :

      Il n’y a aucune garantie que le chemin Unix de la carte SD sera toujours « /sdcard ». L’interface « Environment.getExternalStorageDirectory() » renvoie la vraie valeur.

    3. cr0vax dit :

      Jean-Baptiste, la voix de la sagesse !

      Je vais corriger ça dès que possible.

      Il faut d’ailleurs que je te parle d’un truc pour avoir ton avis (freenet+opendb+android) mais je t’envois un mail.

    Feel free to feed the troll

    * obligatoire


    Vu 34 fois, 1 aujourdhui

    FrAndroid est un site sur l'actualité et le développement d'Android. Pour nous contacter : equipe(at)frandroid.com