java以编程方式安装apk而不定义apk名称
我试图从SD卡以编程方式安装apk,而不提及apk的名称。我现在能做的就是安装我在代码中命名的apk。但是,如果我想在我的设备上安装另一个apk,并且为此我必须进入我的代码并更改apk的名称,那么这并不方便。有没有办法在运行时动态获取apk文件的名称?例如,获取可安装apk的列表,以便用户可以选择安装哪一个
Intent intent = new Intent();
intent.setAction(安卓.content.Intent.ACTION_VIEW);
intent.setDataAndType(
Uri.parse("file:///mnt/sdcard/extsd/download /app.apk"),
"application/vnd.安卓.package-archive");
startActivity(intent);
# 1 楼答案
更新:以前的代码已被删除,因为其中包含错误。下面是一个工作代码:
更新2: 该程序只需枚举所有apk文件并将其写入文件数组。之后,它会尝试按顺序安装所有这些apk文件。例如,在我的例子中,我把应用程序放在golddream中。我的模拟器SD卡上的apk。该应用程序是为SDK v 10开发的。我在logcat中看到以下输出: