【发布时间】:2025-12-29 16:55:11
【问题描述】:
我们有一个用java为客户开发的android应用程序和门户网站,sqllite db 安装在android应用程序中。我想做离线同步,为此我通过USB 将安卓设备连接到PC。是否可以从门户网站访问安装在 android 设备中的 sqllite db?
非常感谢您的回答。
【问题讨论】:
标签: java android spring sqlite jakarta-ee
我们有一个用java为客户开发的android应用程序和门户网站,sqllite db 安装在android应用程序中。我想做离线同步,为此我通过USB 将安卓设备连接到PC。是否可以从门户网站访问安装在 android 设备中的 sqllite db?
非常感谢您的回答。
【问题讨论】:
标签: java android spring sqlite jakarta-ee
我认为您不能直接从 USB 访问,因为数据库将存储在应用程序私有内存中而不是 sdcard 中,但您可以通过应用程序中的代码导出数据库(仅用于查看目的)并将文件上传到您的服务器
public class ExportDB {
final static String SAMPLE_DB_NAME = "yourdatabase";
public static void exportDB(Context context){
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
FileChannel source=null;
FileChannel destination=null;
String currentDBPath = "/data/"+ "your.package.name" +"/databases/"+SAMPLE_DB_NAME;
String backupDBPath = SAMPLE_DB_NAME;
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
try {
source = new FileInputStream(currentDB).getChannel();
destination = new FileOutputStream(backupDB).getChannel();
destination.transferFrom(source, 0, source.size());
source.close();
destination.close();
Toast.makeText(context, "DB Exported!", Toast.LENGTH_LONG).show();
} catch(IOException e) {
e.printStackTrace();
}
}
}
【讨论】: