Existe-t-il une méthode dans Android qui renvoie le chemin de données sur le stockage interne?
J'ai 2 smartphone Android (Samsung s2 et s7 Edge) où j'ai installé une application. Je veux prendre un sqliteDB situé dans cette voie:
/Android/data/application.most/files/most_db
Le problème est que dans Samsung s2 je dois utiliser ce chemin pour prendre la base de données:
private static final String db_path = "/storage/sdcard0/Android/data/org.application/files/application_db";
Instaed, dans s7 je dois utiliser ceci:
private static final String db_path = "/storage/emulated/0/Android/data/application.most/files/application_db";
Je veux prendre ce chemin indépendamment par appareil.
Pouvez-vous m'aider?
Merci d'avance.
Je pense que ce que tu cherches est quelque chose comme ça
String path = getFilesDir().getAbsolutePath();
En gros, vous voulez accéder au répertoire externe des applications . "sdcard/Android/data/votrePackage/fichiers"
Tu devrais utiliser: getExternalFilesDir (null) méthode de Context Class.
private static final String db_path = getExternalFilesDir(null).getAbsolutePath() + "/application_db";
OU vous pouvez obtenir directement une instance de fichier comme:
File file = new File(getExternalFileDir(null),"application_db");
Assurez-vous d’ajouter l’autorisation WRITE_EXTERNAL_STORAGE dans le manifeste.
Vous pouvez en savoir plus à ce sujet sur: https://developer.Android.com/reference/Android/content/Context.html#getExternalFilesDir(Java.lang.String) }