我有一个Windows sql服务器,我已经上传了我的应用程序apk文件的新版本。现在我想在代码中下载apk并将其保存在我的设备上,然后刷新应用程序,以便运行新版本。如果这是不可能的,我需要一个解决方案,我有2个应用程序,其中应用程序A将进行版本检查和可选更新,然后自动启动应用程序B,这将是我希望用户使用的实际应用程序。
我见过类似的解决方案,开发人员从http服务器下载文件,但我没有这个选项,必须使用数据库来获取文件。有没有办法使用InputStream来定位一个不是Web URL的文件,而是从tge数据库中收到的byte []。
答案 0 :(得分:0)
清单文件中的更改
android:versionCode="1"
android:versionName="1.0"
将versionCode更新为“2”
答案 1 :(得分:0)
我设法解决了这个问题。
private void downloadNewVersion(ArrayList<CustomFileObjectWithIDAndFilePath> fileList) {
CallableStatement statement = null;
try {
statement = con.prepareCall("{call some_stored_procedure (?)}");
statement.setInt(1, fileList.get(0).ID);
statement.execute();
ResultSet rs = statement.getResultSet();
while (rs.next()){
byte[] fileContent= rs.getBytes("File");
FileOutputStream fs = new FileOutputStream(new File(fileList.get(0).name));
fs.write(fileContent, 0, fileContent.length);
fs.flush();
fs.close();
}
} catch (SQLException | IOException e) {
e.printStackTrace();
}
}
我只是运行一个方法来启动我安装下载文件的意图。