Menu

#1841 CSipSimple stores information in /CsipSimple isntead of /Android/data/com.csipsimple

Invalid
nobody
None
Medium
Defect
2012-07-24
2012-07-23
Anonymous
No

Originally created by: regis.de...@gmail.com

What steps will reproduce the problem?
1. Installer CSipSimple et le démarrer

What is the expected output?
Le stockage longue durée sur carte SD devrait être dans /Android/data/com.csipsimple

What do you see instead?
C'est un répertoire /Android qui est créé sur la carte SD

What version of the product are you using? On what operating system?
0.03-01

Please provide any additional information below.

Discussion

  • Anonymous

    Anonymous - 2012-07-23

    Originally posted by: regis.de...@gmail.com

    Pardon, pour reproduire il faut exporter la configuration ou enregistrer des logs.

    Le premier devrait être créé avec ``getExternalFilesDir("configs")`` et le second avec ``getExternalFilesDir(logs)``

    Voir http://developer.android.com/reference/android/content/ContextWrapper.html#getExternalFilesDir(java.lang.String)

     
  • Anonymous

    Anonymous - 2012-07-23

    Originally posted by: r3gis...@gmail.com

    Pour les logs c'est normal, ça permet de les récupérer via la carte SD. (cf HowToCollectLogs).
    A partir du moment où ce sont des fichiers qu'on veut que l'utilisateur puisse récupérer facilement il faut stocker dans la SDCard à la main. C'est aussi le cas pour les fichier wave d'enregistrement de conversations.

    Pour le backup de conf ça se discute encore moins : le fait d'utiliser la méthode évoquée impliquerai que le backup de conf serait supprimé lors de la désinstallation... ce qui rendrait la feature inutile.
    De plus il y a des gens qui veulent pouvoir ajouter/éditer les fichiers de backup directement. Donc aussi besoin de les mettre sur la SD. Cependant ça pose un gros soucis de sécurité ! Cf issue 957.
    Une autre méthode "propre" serait d'implémenter la feature de backup d'android. Je n'ai pas encore creusé mais pas sûr que ça conviennent aux utilisateurs qui veulent éditer leur conf à la main. Et à vrai dire, je ne sais pas non plus si ça ne requiers pas un compte google pour être utilisé.

    Status: Invalid

     

    Related

    Tickets: #957

  • Anonymous

    Anonymous - 2012-07-24

    Originally posted by: regis.de...@gmail.com

    Je me suis peut-être exprimé. L'emplacement du répertoire ne suit pas les conventions de nommage d'Android. getExternalFilesDir renvoie bien un répertoire sur la carte SD (d'où le external). Le chemin complet de getExternalFilesDir("logs") sera donc /mnt/sdcard/Android/data/com.csipsimple/logs

     
  • Anonymous

    Anonymous - 2012-07-24

    Originally posted by: r3gis...@gmail.com

    J'avais bien compris... Mais ce chemin n'est pas bon pour ce qu'on veut faire !

    Relis la doc android du lien que tu as envoyé.

    Suivant ce qu'on veut faire des fichiers on doit *ou pas* utiliser le getExternalFilesDir. Et en l'occurence on est dans le cas où il ne faut pas l'utiliser.
    Sinon à la désinstallation de l'application le dossier est supprimé. C'est pas ce que l'on veut ici. Par ailleurs les fichiers ne sont pas indexé par les applis média, c'est pas ce qu'on veut non plus.

    Cf :
    """
    These files are private to the applications, and not typically visible to the user as media.
    """
    et
    """
    the directories returned here are owned by the application, and their contents will be removed when the application is uninstalled. Unlike Environment.getExternalStoragePublicDirectory(), the directory returned here will be automatically created for you.
    """

    En fait cette feature d'avoir des dossiers nommés dans android propre à une application (et qui se supprime tout seuls quand l'appli est désinstallée!) c'est pour que les jeux (entre autres) puisse stocker leurs images, sons, et autres trucs qui ont la même durée de vie que l'application.

    Ce n'est pas fait pour l'export de fichier vers l'utilisateur. D'ailleurs tu admettras que le chemin avec le package name à l'interieur est pas très user friendly.
    C'est historiquement pour les jeux que ça a été introduit. Et c'est pour ça aussi que les sons/images ne sont pas indexées par les applis media.

    Hors pour les fichiers d'enregistrement de conversion de CSipSimple il faut que ça soit indexé sinon ça n'est pas possible de lire les conversations enregistrées depuis les applis de base de lecture de son.

    Les applications, dès qu'elles ont pour but d'exporter à l'utilisateur des fichiers doivent se placer sur la SDCard directement.
    Ils y a certains dossiers déjà prédéfinis pour certains cas.
    Par example la musique, les photos, les téléchargement etc. (il y a des méthode de l'api dédiés pour ces dossiers).
    Pour notre cas il n'y a pas de sous dossier dédié donc j'en créé un nouveau. A la limite ça pourrait se discuter pour les enregistrements d'appels... mais bon c'est pas vraiment de la musique.

    Ce dossier dont tu parles est vraiment spécial. Ce n'est pas comme tu dis une "convention" de nommage, mais bien un dossier spécial qui est soumis à des règles spéciale qui ne correspondent pas à ce que l'on veut faire ici.
    Cette règle de nommage est d'ailleurs logique il commence par Android, ce sont donc des fichiers gérés par android et ce sont les *data* de l'application. Hors ici dans notre cas ce ne sont pas des *data* mais des fichiers qui doivent être accessibles par l'utilisateur de façon simple.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.