在实际的项目开发中经常会碰到想把第三方的apk程序直接集成进我们自己的应用中这样的情况。
如果是自己编写的两个应用,那么因为已经知道了这两个应用的包名,所以我们很容易就能控制这两个程序之间的跳转问题。现在的问题是,其中的一个应用我们只有其apk。解决的思路其实一样,可以想办法获取到它的包名,这样就可以用同样的方法进行跳转。
分以下几种情况进行讨论
一、该应用已经安装
这里介绍两种方法:
1、枚举所有安装的应用
根据设置的条件进行筛选,使用PackageManager的public abstract List getInstalledPackages (int flags) 方法可以获得安装应用的列表。
用这个方法po主实现了一个类似文件管理器的应用,可以获取测试机上所有已装的程序并启动,获取的分别为应用程序名称,应用程序包名,应用程序入口Activity名称。
sample下载地址:http://download.csdn.net/detail/u012505618/9361143,
当获取了应用程序包名,应用程序入口Activity名称就可以进行跳转:
// 启动代码:
PackageManager pm;
// 初始化pm, 比如在activity里可以PackageManager pm = getPacka