Мне нужно открыть намерение с помощью файла apk, который загружается с удаленного хоста. На API ниже 24 все работало нормально и все еще вроде нормально. Прямо сейчас я должен нацелиться на API 29, который вызывает у меня некоторые проблемы.
Когда я пытаюсь открыть файл apk на устройстве с Android 10, все, что я получил из журналов:
Caught Exception: file:///storage/emulated/0/Download/blablabla.apk exposed beyond app through Intent.getData()
Я попытался добавить FileProvider , как предложено здесь { ссылка } или здесь https://infinum.com/the-capsized-eight/share-files-using-fileprovider
Но я не могу использовать или import FileProvider , поскольку этот класс не определен. Я пытался
import android.support.v4.content.FileProvider
, но пакет нигде не может быть найден. Затем я изменил свой AndroidManifest. xml, добавив
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
Но это не решило проблемы волшебным образом.
Я даже попытался отключить проверку во время выполнения, как описано в здесь: { ссылка }
Но все равно безуспешно:
Caught Exception: No Activity found to handle Intent { act=android.intent.action.VIEW
dat=file:///storage/emulated/0/Download/blablabla.apk typ=application/vnd.android.package-archive flg=0x10000001 }
Я понятия не имею, что делать или пытаться делать дальше, кроме понижения всего, что ниже API 24, что я не могу сделать. Может кто-нибудь указать мне, что я должен делать или где я могу найти какой-либо рабочий пример? Если потребуется какая-либо дополнительная информация или даже (не) рабочая демонстрация, я буду рад ее предоставить.
Я использую систему сборки gradle, которая запускается из QtCreator.