Article complet: Simuler une sd-card, ajouter des fichiers et y accéder dans une application Android

25/01/2010

Permalink 11:29:06, Catégories: Récapitulatif Java, Android, Android, 591 mots   French (FR) , Nicolas Druet

[Android][Java] Simuler une sd-card, ajouter des fichiers et y accéder dans une application Android

Au démarrage d'un projet, j'ai voulu utiliser/simuler une carte SD avec l'émulateur. Je l'aurai parié ! Tout n'a pas fonctionné comme prévu avec le SDK d'Android :-D Heureusement pour nous, la ligne de commande existe.

Dans ce billet je vais donc expliquer comment :

[Suite:]


> Créer une carte SD en ligne de commande

Ouvrez une ligne de commande Windows. Allez dans le répertoire où vous souhaitez la créer puis utilisez l'outil du SDK mksdcard:
mksdcard-help

Pour créer un carte sd_card d'1 Go :
> mksdcard 1024M sd_card

Il est inutile de spécifier une extension au nom de la carte.

Puis sous Eclipse: Run > Run configurations > Target
Dans le champ "Additional Emulator Command Line Options",ajoutez le paramètre :
-sdcard <filepath>/<filename>

On indique ainsi pour chaque projet, s'il nécessite une carte et laquelle.

> Créer une carte SD sous Eclipse

Il est possible de créer une carte SD lors de la création du Android Virtual Device (AVD).

Les données restent persistantes. Si vous relancer l'émulateur, les fichiers seront toujours présents.

Vous pouvez également spécifier un fichier créé avec la commande mksdcard

De cette manière, tous vos projets déployés sur ce même AVD utiliseront cette carte SD. Sinon vous devez créer un AVD par projet et spécifier sur quel AVD vous voulez déployer chacun de vos projets.

Pour cela dans Eclipse: Run > Run configurations > Target et sélectionnez l'AVD


> Ajouter des fichiers

Vous pouvez voir le contenu de la carte SD dans la vue DDMS sous l'onglet File Explorer :

Il est nécessaire que l'émulateur soit lancé.

Pour ajouter des fichiers deux solutions existent mais qu'une fonctionne (c'est la magie de google):

  • En ligne de commande, utiliser la commande adb push <source path> /sdcard/:

  • Sous Eclipse, sélectionnez le répertoire sdcard et cliquez sur le bouton de droite à coté des onglets :

    Malheureusement, j'obtiens systématiquement le message Failed to push the item(s) dans la console



J'ai quand même un doute sur la prise en compte à chaud de nouveaux fichiers, du moins en ce qui concerne le lecteur mp3...


> Lister les fichiers dans une application

Je vais faire court puisque qu'un très bon tutorial existe http://www.anddev.org/building_an_android_filebrowser_list-based_-t67.html et montre comment lister les fichiers du téléphone dans une ListActivity

Rien de bien sorcier, puisqu'on part d'un objet File en indiquant la racine du téléphone :

File file = new File("/");

Pour lister les fichiers de la carte SD, on partira de :

File file = new File("/sdcard/");

On prendra soin de vérifier la présence de la carte SD avec file.exist(); qui renvoie vrai si le répertoire ou le fichier existe. On peut prendre également la précaution de s'assurer que notre file est un bien un répertoire en utilisant file.isDirectory();.

Enfin n'oublions pas :

file.listFiles();


qui renvoie un tableau de File présents dans le répertoire.

Pour compiler l'exemple, effectuez les quelques modifications indiquées sur ce post : http://www.anddev.org/viewtopic.php?p=12328#12328



> Ressources

Social Bookmarking:

                                     

Commentaires:

Connectez-vous pour vous abonner à cet article:

Flux de commentaires pour cet article : Atom 1.0  RSS 2.0

Cet article n'a pas de Commentaires pour le moment...

Vous devez être identifié pour poster un commentaire.

Liste des blogs

Android - Le blog d'un développeur

Nicolas DRUET

Catégories


Rechercher

<  Février 2012  >
Lun Mar Mer Jeu Ven Sam Dim
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        

Syndiquez ce blog XML

Articles :

Commentaires :

 
 
 
 
Partenaires

Hébergement Web