【问题标题】:Get sqlite database from android app after sync from online database从在线数据库同步后从 android 应用程序获取 sqlite 数据库
【发布时间】:2017-02-02 03:48:52
【问题描述】:

我有一个带有预置数据库的安卓应用程序,我可以破解预置数据,但是在与在线服务器同步后,我仍然得到旧数据库。我认为新数据存储在内存中,而不是写入存储在资产中的数据库。 如何获取实时 sqlite 数据库,同步后应用当前正在使用。

【问题讨论】:

  • 到目前为止,您尝试了什么?如何提问stackoverflow.com/help/how-to-ask
  • 您的意思是从当前正在使用的设备中提取数据库?
  • 是的,我可以提取在构建应用程序期间放置的旧数据库,但如果我想获取最新的同步数据,我无法获取 @gopal_patil
  • 在您的问题中使用代码 sn-ps 更新您的同步过程。
  • 我已经反编译了应用程序,所以他们的同步活动是使用一些 ncryption 来获取数据,获取数据的唯一方法是在插入 sqlite 之后

标签: android android-studio sqlite


【解决方案1】:

比较新旧数据库中可能发生变化的所有对象。删除不存在的记录,插入新记录。

或者只是删除旧数据库,然后下载新数据库作为替换。

【讨论】:

  • 感谢您的回复,但我已经反编译了应用程序,因此无法更改代码,只能以某种方式从内存中获取 sqlite
【解决方案2】:

通过拉取该文件,您将无法获取新数据。 你可以试试这个,它会读取你的数据并从中创建新文件。

public boolean backUpDB() {
        String currentDBPath = ""; //db path
                + "DB_NAME";
        File data = Environment.getDataDirectory();

        if (isExternalStorageAvailable()) {
            File folder;
            folder = new File(
                    context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)
                            + "/backup_path/");
            if (!folder.exists()) {
                folder.mkdir();
            }
            String path = folder + "";

            File SDPath = new File(path);
            if (!SDPath.exists()) {
                SDPath.mkdir();
            }
            try {
                File currentDB = new File(data, currentDBPath);
                InputStream input = new FileInputStream(currentDB);
                byte dataa[] = new byte[input.available()];
                input.read(dataa);

                OutputStream out = new FileOutputStream(path + "/"
                        + "DB_NAME");
                out.write(dataa);
                out.flush();
                out.close();
                input.close();
            } catch (Exception e) {
                Commons.printException("exception," + e + "");
                return false;
            }
            return true;
        } else {
            return false;
        }

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-24
    • 2013-03-19
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    相关资源
    最近更新 更多