Android - 自动更新问题

时间:2011-04-01 06:58:09

标签: android auto-update

我使用此代码从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

编辑:有人知道一些解决方案吗?

2 个答案:

答案 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);

它有效。