我使用此代码从URL保存app.apk:
Context ctx;
InputStream input = new BufferedInputStream(url.openStream());
FileOutputStream output = ctx.getApplicationContext().openFileOutput("myApp.apk", Context.MODE_WORLD_READABLE);
而不是通过以下方式将其从输入保存到文件:
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
output.write(data, 0, count);
}
下载后,现在已成功完成,我想提示安装 - 我想我应该使用FileInputStream,但我不确切知道如何。
下载后,我有代码:
Intent install=new Intent(Intent.ACTION_VIEW);
install.setDataAndType(Uri.fromFile(xxx - AND HERE I AM STUCK), "application/vnd.android.package-archive");
ctx.startActivity(install);
我试过ctx.getApplicationContext().openFileInput("myApp.apk")
,但是Uri.fromFile需要文件,我给它openFileInput。你知道怎么解决吗?
THX
编辑:有人知道一些解决方案吗?
答案 0 :(得分:0)
来自:Android Get Application's 'Home' Data Directory
使用getFilesDir()返回openFileInput保存文件的绝对路径。然后将其传递给File()构造函数。
答案 1 :(得分:0)
我用这个:
intent.setDataAndType( Uri.parse("file://" +
context.getFilesDir().getAbsolutePath() +
"/" + update_file), ANDROID_PACKAGE);
它有效。