【发布时间】:2018-12-23 12:53:09
【问题描述】:
我正在使用 USB 调试(SM - G335h 版本 4.4.2 API 19),我想从 android studio 导出数据库,但数据文件夹无法展开。有谁知道如何解决这个问题? 我尝试使用 adb root 对我的手机进行 root,但它不起作用。
【问题讨论】:
标签: sqlite
我正在使用 USB 调试(SM - G335h 版本 4.4.2 API 19),我想从 android studio 导出数据库,但数据文件夹无法展开。有谁知道如何解决这个问题? 我尝试使用 adb root 对我的手机进行 root,但它不起作用。
【问题讨论】:
标签: sqlite
解决此问题的方法是将数据库文件复制到应用程序内可访问的位置。
例如,这样的位置可以是下载文件夹,可以通过以下方式确定/访问:-
File yourdir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath());
您可以使用以下方法获取数据库位置:-
Context.getDatabasePath("your_database_name");
例如一个非常基本/最小的例子可能是:-
File from = new File(a_suitable_context.getDatabasePath("your_database_name").getPath());
File to = new File(a_suitable_context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).getPath() + File.separator + "your_db_savename");
byte[] bffr = new byte[1024];
FileInputStream fsfrom;
FileOutputStream fsto;
try {
fsfrom = new FileInputStream(from);
fsto = new FileOutputStream(to);
while(fsfrom.read(bffr) > 0) {
fsto.write(bffr);
}
fsto.flush();
fsfrom.close();
fsto.close();
} catch (IOException e) {
e.printStackTrace();
}
然后您可以从 AS 的设备资源管理器访问此文件。例如:-
请注意,这使用了“下载”文件夹中的子目录。
注意a_suitable_context、your_database_name 和your_db_savename 将是您提供的合适值(后者都可以是数据库名称)。
您也可以使用这里的解决方案Android Device Monitor “data” folder is empty
【讨论】: