CSipSimple stores information in /CsipSimple isntead of...
Brought to you by:
krunalhire
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.
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
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)
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
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
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
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
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
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.