Tag: 安装

以编程方式安装/卸载APK(PackageManager vs Intents)

我的应用程序安装了其他应用程序,并且需要跟踪它安装的应用程序。 当然,这可以通过简单地保存已安装应用程序的列表来实现。 但是这不应该是必要的! PackageManager负责维护installedBy(a,b)关系。 实际上,根据API,它是: public abstract String getInstallerPackageName (String packageName) – 检索安装包的应用程序的包名称。 这标识了包装来自哪个市场。 目前的做法 使用意图安装APK Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(apkUri, "application/vnd.android.package-archive"); startActivity(intent); 使用Intent卸载APK: Intent intent = new Intent(Intent.ACTION_DELETE, Uri.fromParts("package", getPackageManager().getPackageArchiveInfo(apkUri.getPath(), 0).packageName,null)); startActivity(intent); 这显然不是Android Market安装/卸载软件包的方式。 他们使用更丰富的PackageManager版本。 这可以通过从Android Git存储库下载Android源代码来看到。 以下是对应于Intent方法的两个隐藏方法。 不幸的是,它们不适用于外部开发者。 但也许他们会在未来? 更好的方法 使用PackageManager安装APK /** * @hide * * Install a package. Since this may […]