web-dev-qa-db-fra.com

(Android) Trouver le chemin/Android dans la mémoire interne

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.

3
Federico

Je pense que ce que tu cherches est quelque chose comme ça

String path = getFilesDir().getAbsolutePath();
9
antonis_st

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) }

0
Sahil Sharma