2013-06-04 46 views
0

的位置隨着安卓:我的數據庫文件

 SQLiteDatabase db = getReadableDatabase(); 
     String path = db.getPath(); 

我知道,我的數據庫文件的路徑/data/data/com.packagename/databases/app.db

我的用戶應該有權訪問這個文件來備份數據,例如他改變了手機。我試圖通過Windows資源管理器找到它,但在/data中沒有文件夾這樣調用。

我還通過搜索搜索了數據庫文件,但沒有成功。不可能以這種方式得到它?

+0

如果您希望用戶可以訪問它,則需要提供某種「導出」,將數據庫文件或其所有數據轉儲到外部存儲上。除非設備具有root權限,否則'data /'不能被讀取 – FoamyGuy

回答

0

不,如果你沒有固定電話,這是不可能的。如果你有一個根深蒂固的手機,你可以通過應用程序的專用內部存儲執行下

adb pull /data/data/com.packagename/databases/app.db 
1

文件與亞行得到它是不是由終端用戶USB大容量存儲設備或MTP文件訪問機制可訪問。

除非您明確設置了一般訪問的權限,或者正在測試調試APK或在調試設備上,否則它們無法通過ddms開發人員工具訪問。

您的選擇將包括存儲在外部存儲數據庫,而不是,或在你的應用程序的菜單,這將使用戶做它的副本存在的選項,而原始應用程式的私人文件夾相對而言免受其他應用程序的干擾,如果它位於無主的外部存儲上,則可能會發生干擾。

+0

您不應該將sqlite數據庫存儲在外部存儲上。這是出於技術原因,請參閱:https://code.google.com/p/android/issues/detail?id=64345 –

+0

此處討論的內容主要是*將db複製到外部存儲以與分析工具共享。此外,你指的是一個人頗有爭議的*意見*。 –

+0

用戶應該有權訪問該文件,而不是該文件的副本。這是不是你所說的「將數據庫存儲在外部存儲上」? 「意見」不是來自個人,而是「通常我們建議反對它」和「我們」是谷歌的Android工程師。 –