2016-05-28 42 views
0

Android中是否存在返回內部存儲器上的數據路徑的方法?(Android)在內部存儲器中查找路徑/ Android

我有2個Android智能手機(三星s2和s7邊緣),我安裝了一個應用程序。我想借此坐落在這條道路一sqliteDB:

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

的問題是,在三星S2我必須使用此路徑採取DB:

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

Instaed,在S7 I必須使用此:

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

我想通過設備獨立採取此路徑。

你能幫我嗎?

在此先感謝。

回答

5

我認爲你要尋找的是類似的東西

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

一旦改變你的邏輯在不同版本.. 直到安卓4.XX它採取內部存儲器爲/storage/sdcard0/ 其中從4.4奇巧將採取的路徑作爲/storage/emulated/0/

設計multiple apk取決於Android的API版本...

你的問題就解決了..你可以安裝它在s2與該路徑和S7與此路徑...

0

基本上你想要訪問應用程序的外部目錄。 即。 「SD卡/安卓/數據/ yourPackage /文件」

你應該使用: getExternalFilesDir(空)的語境方法。

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

也可以直接獲取文件的實例,如:

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

確保在清單中添加WRITE_EXTERNAL_STORAGE權限。

你可以閱讀更多關於此: https://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)