android - 以编程方式安装 APK。正在安装的 APK 中需要进行哪些 Activity ?

标签 android android-intent

我正在尝试从我的应用内安装 APK。我已经看到了所有显示使用 Intent 的示例。通常是这样的:

Uri apkUrl = Uri.parse(Environment.getExternalStorageDirectory() + "/Download/" + "Test.apk");
Intent promptInstall = new Intent(Intent.ACTION_VIEW).setDataAndType(apkUrl, "application/vnd.android.package-archive");
startActivity(promptInstall);

当我运行它时,我得到了异常:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=/storage/emulated/0/Download/Test.apk typ=application/vnd.android.package-archive }

我是安卓新手。但我猜这意味着 Test.apk 需要其 list xml 中的 Activity 来实现 ACTION_VIEW Intent 。但我不确定如何编写它,或者它是否需要在源文件中与其关联的 Activity ?或者安装apk有什么要求?

谢谢! 凯尔

最佳答案

该错误表明 Android 找不到任何可以处理 VIEW 给定 URI 请求的已安装 Activity 。它与 APK 内的代码无关。

您的问题是您的 URI 没有方案,格式不正确。 URI 应如下所示:

`file:///storage/emulated/0/Download/Test.apk`

要修复它,您可以执行以下操作:

File apkFile = new File(Environment.getExternalStorageDirectory() + "/Download/" + "Test.apk");
Uri apkUrl = Uri.fromFile(apkFile);

关于android - 以编程方式安装 APK。正在安装的 APK 中需要进行哪些 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24319117/

相关文章:

android - 创建类似 "1-day" View 的谷歌日历应用程序布局

android - 通过 Intent 传递的值有时会返回 null

android - tabhost 安卓

java - 当我想在 Activity 中获取字符串时,我得到 NULL

java - 当我尝试从数据库中删除数据并刷新 ListView 时,应用程序崩溃了

android - 如何在 Android 的 ImageView 上制作卷边?

android - 使用 IntentService 进行位置监听,但在 onHandleIntent 之后立即调用 onDestroy

android - 从 sherlock fragment 添加进度对话框到操作栏 sherlock

java - Android套接字客户端 - 无法发送消息

android - StackView Widget 示例源代码