Android - проблема автообновления - PullRequest
2 голосов
/ 01 апреля 2011

Я использую этот код для сохранения app.apk с URL:

            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.Вы знаете, как ее решить?

Спасибо

Редактировать: Кто-нибудь знает какое-нибудь решение?

Ответы [ 2 ]

0 голосов
/ 10 марта 2013

Я использую это:

intent.setDataAndType( Uri.parse("file://" +
    context.getFilesDir().getAbsolutePath() +
    "/" + update_file), ANDROID_PACKAGE);

и все работает.

0 голосов
/ 19 января 2012

От: Android Get Application 'Home' Data Directory

Используйте getFilesDir (), чтобы вернуть абсолютный путь, куда openFileInput сохранил файл.Затем передайте это вашему конструктору File ().

...