我们有用java为客户端开发的android应用程序和门户网站,sqllite
db安装在android应用程序中。我想做离线同步,为了做到这一点,我正在通过USB
将android设备连接到PC。是否可以从门户网站访问安卓设备中安装的sqllite数据库?
我真的很感激你的回答。
我认为你不能直接从usb访问,因为数据库将存储在应用程序的专用内存中,而不是存储在SD卡中,但你可以通过应用程序中的代码导出你的数据库(仅用于查看目的),并将文件上传到你的服务器
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();
}
}
}