O Android instala apk com o Intent.VIEW_ACTION que não funciona com o provedor de arquivos
Meu aplicativo possui um recurso de atualização automática que baixa um APK e, quando o download termina, um Intent.VIEW_ACTION para abrir o aplicativo e permitir que o usuário instale o apk baixado
Uri uri = Uri.parse("file://" + destination);
Intent install = new Intent(Intent.ACTION_VIEW);
install.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
install.setDataAndType(uri,
manager.getMimeTypeForDownloadedFile(downloadId));
activity.startActivity(install);
Isso funciona muito bem para todo o dispositivo <24
Agora, com o Android 24, aparentemente não nos é mais permitido iniciar intenções com file: /// e depois de pesquisar no Google, foi aconselhado a usar um provedor de arquivos
novo Código:
Intent install = new Intent(Intent.ACTION_VIEW);
install.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
install.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Uri apkUri = FileProvider.getUriForFile(AutoUpdate.this,
BuildConfig.APPLICATION_ID + ".provider", file);
install.setDataAndType(apkUri,
manager.getMimeTypeForDownloadedFile(downloadId));
activity.startActivity(install);
Agora activity.startActivity (instalar); gera um erro
Nenhuma atividade encontrada para lidar com Intent {act = android.intent.action.VIEW dat = content: //com.xxxx.xx.provider/MyFolder/Download/MyApkFile.apk typ = application / vnd.android.package-archive flg = 0x4000000}
Existe alguma maneira de abrir o visualizador de APK no Android 7 (24)?