java - 如何通过 USB 从门户网站访问 Android 中安装的 Sqlite DB

标签 java android spring sqlite jakarta-ee

我们有用java为客户端开发的android应用程序和门户网站,sqllite db安装在android应用程序中。我想要离线同步,为了做到这一点,我通过USB将Android设备连接到PC。是否可以从门户网站访问安装在 Android 设备中的 sqllite 数据库?

非常感谢您的回答。

最佳答案

我认为您不能直接从 USB 访问,因为数据库将存储在应用程序私有(private)内存中而不是 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();
        }
    }
}

关于java - 如何通过 USB 从门户网站访问 Android 中安装的 Sqlite DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38630081/

相关文章:

java - 在 OpenSSL 中完成的 AES 加密成功解密,但在 Java 中加密时失败

java - 在 solr 5.1.0 中找不到用于配置的正确 solrconfig.xml 文件

java - WooCommerce REST API 响应中类别和子类别之间的差异

Android 在 fragment 上方滑动布局

java - 在 Spring CrudRepository 中使用 List<Long> 作为参数

java - Spring的预认证过滤器如何实现?

java - 为什么 Java 日历说该月的第一个星期四是第 5 周?

java quartz调度程序在特定时间运行

android - 唤醒锁在 Android 的自定义系统服务中无法正常工作

spring - 如何检查 Spring boot 是在独立模式还是嵌入式模式下运行?