2016-05-28 19 views
0

Gibt es eine Methode in Android, die den Datenpfad auf internem Speicher zurückgibt?(Android) Pfad/Android im internen Speicher finden

Ich habe 2 Android-Smartphone (Samsung s2 und s7 Rand), wo ich eine Anwendung installiert. Ich möchte ein sqliteDB in diesem Pfad befindet sich nehmen:

/Android/data/application.most/files/most_db 

Das Problem ist, dass in Samsung s2 ich diesen Pfad verwenden, müssen die DB zu nehmen:

private static final String db_path = "/storage/sdcard0/Android/data/org.application/files/application_db"; 

instaed, i in s7 muss diese verwenden :

private static final String db_path = "/storage/emulated/0/Android/data/application.most/files/application_db"; 

Ich möchte diesen Pfad unabhängig von Gerät nehmen.

Können Sie mir helfen?

Vielen Dank im Voraus.

Antwort

5

Ich denke, dass das, was Sie suchen etwas wie die

ist
String path = getFilesDir().getAbsolutePath(); 
0

Sobald Ihre Logik in verschiedenen Versionen ändern .. bis android 4.xx nimmt es interne Speicher als /storage/sdcard0/ wo ab 4.4 KitKat wird es dauern Weg als /storage/emulated/0/

Entwurf multiple apk auf android API-Versionen je ...

Ihr Problem gelöst ist .. können Sie Installieren Sie es in s2 mit diesem Pfad und S7 mit diesem Pfad ...

0

Grundsätzlich möchten Sie auf Anwendungen External Directory zugreifen. dh. "Sdcard/Android/data/yourPackage/files"

Sie verwenden sollten: getExternalFilesDir (null) Methode von Context Klasse.

private static final String db_path = getExternalFilesDir(null).getAbsolutePath() + "/application_db"; 

oder direkt Datei-Instanz erhalten wie:

File file = new File(getExternalFileDir(null),"application_db"); 

stellen Sie sicher, WRITE_EXTERNAL_STORAGE Permission im Manifest hinzufügen.

Sie können mehr über diese Zeilen lesen unter: https://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)

Verwandte Themen