Android 文件提供程序:安装APK。分析包时出错

Android 文件提供程序:安装APK。分析包时出错,android,android-fileprovider,Android,Android Fileprovider,我试图在下载管理器下载apk后安装它。下载完成后,我使用广播来获取消息。以下是我的代码:- 文件提供程序:安装APK。分析包时出错 val file = File(getExternalFilesDir("Download"), "/playlist/update.apk") if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { val apkUri = FileProvider.getUriFo

我试图在下载管理器下载apk后安装它。下载完成后,我使用广播来获取消息。以下是我的代码:- 文件提供程序:安装APK。分析包时出错

val file = File(getExternalFilesDir("Download"), "/playlist/update.apk")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                    val apkUri = FileProvider.getUriForFile(this@MainActivity, BuildConfig.APPLICATION_ID + ".provider", file)
                    val intent = Intent(Intent.ACTION_INSTALL_PACKAGE)
                    intent.data = apkUri
                    intent.flags= Intent.FLAG_GRANT_READ_URI_PERMISSION
                    this@MainActivity.startActivity(intent)
                } else {
                    val apkUri = Uri.fromFile(file)
                    val intent = Intent(Intent.ACTION_VIEW)
                    intent.setDataAndType(apkUri, "application/vnd.android.package-archive")
                    intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
                    this@MainActivity.startActivity(intent)
                }
舱单:-

<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/filepaths" />
        </provider>

filepath.xml:-

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-files-path name="Download" path="Download/" />
</paths>


我正在“Downloads/playlist/”目录中下载apk。我看到了同样的问题-。然而,我似乎无法从该解决方案中使其工作。我还通过自己安装检查了apk,安装时没有任何错误。请帮忙

您下载的APK是否与您的设备兼容?是的。如果我从存储中打开下载的apk,我可以安装它而不会出现任何错误。好的,这样做吧。我猜您可以使用ADB访问计算机,因为您正在开发一个应用程序:
ADB shell
然后
pm安装-r/sdcard/Download/playlist/apkName.apk
。显然,你必须修正这条路。它应该返回一个更详细的错误。它返回了有趣的“Success”。这意味着从应用程序启动安装过程的方式有问题。