客户的android机器没有外置SD卡,要求实现自动更新功能,最方便的就是把apk下载到应用的私有目录下/data/data/<package name>/files/下。
下载都正常的,然后通过
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(
Uri.fromFile(new File(savefolder, filname)),
"application/vnd.android.package-archive");
startActivity(intent);
安装下载的新apk总是报解析包时出错,然后,看到文件之类的都存在于私有目录下。
后来想通过intent来安装包是不是已经是别的应用调用本应用时没有权限问题?
然后在下载的时候使用Context.MODE_WORLD_READABLE 代替Context.MODE_PRIVATE
FileOutputStream fos = context.openFileOutput(UPDATE_SAVENAME, Context.MODE_WORLD_READABLE);
结果一切正常了。