Есть ли способ получить уведомление, когда APK не устанавливается? - PullRequest
4 голосов
/ 01 декабря 2011

Я пишу заявку.В приложении я загружаю программно APK и запускаю намерение, которое запускает установку APK.

Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "app.apk")),
                "application/vnd.android.package-archive");
        startActivity(intent);

все работает хорошо.

, но когда я пытаюсь, например, запустить установкуповрежденного APK Появляется диалоговое окно: enter image description here

Я хочу получать уведомления о проблемах с установкой APK (поврежденный APK, недостаточно места и т. д.).

Итак, есть ли способ (событие или что-то), чтобы уведомить об этом, чтобы я мог заменить диалог дефалта "Ошибка разбора" своим собственным диалогом?

спасибо!

1 Ответ

4 голосов
/ 14 мая 2012

Я не уверен на 100%, будет ли этот метод работать во всех возможных ситуациях, но я тестировал и, по крайней мере, работал на меня.

Я не нашел информации об обнаружении ошибок установки в Android, поэтому я стараюсь превентивно определить, не поврежден ли файл apk.

Согласно этой ссылке , apks - это просто jarfiles с кодами dalvik. Таким образом, вы можете использовать распаковку zip, чтобы обнаружить, что файл был поврежден и возникли проблемы с анализом пакета.

boolean corruptedApkFile = false;
try {
     new JarFile(updateFileFullPath); //Detect if the file have been corrupted
} catch (Exception ex) {
     corruptedApkFile = true;
}
...