Пишу приложение, в нем есть кнопки для установки дополнительных APK, чтобы корректно всё работало. С помощью DownloadManager скачиваю дополнительное приложение и после успешной закачки в BroadcastReceiver, пытаюсь запустить установку. Но, система выдает что "Не удалось обработать пакет". Что я делаю не так? И вопрос еще один, после выдачи всех разрешений, на одном из телефонов стало появятся предупреждение, что приложение с вирусом и его надо удалить, что не так?
Установка:
File directory = context.getExternalFilesDir( Environment.DIRECTORY_DOWNLOADS );
File fileApkToInstall = new File( directory, APP + ".apk" );
Uri apkUri = FileProvider.getUriForFile( context, PACKET_NAME + ".provider", fileApkToInstall );
Intent install = new Intent( Intent.ACTION_INSTALL_PACKAGE );
install.setData( apkUri );
install.setFlags( Intent.FLAG_GRANT_READ_URI_PERMISSION );
install.putExtra( Intent.EXTRA_RETURN_RESULT, true );
install.putExtra( Intent.EXTRA_NOT_UNKNOWN_SOURCE, true );
startActivity( install );
...
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" tools:ignore="ScopedStorage"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.INSTALL_PACKAGES" tools:ignore="ProtectedPermissions"/>
...
<application
...
<provider
android:name="androidx.core.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" />
</provider>
...
</application>
@xml/provider_paths
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external" path="." />
</paths>