Android 学习交流群:182709499
简单分享Android 如何从自己应用里面跳转到其他的应用。
先给出一段跳转的代码:
Intent intent = new Intent();
intent.setComponent(new ComponentName(pack, activityMian));
startActivity(intent);
pack:应用程序包名
activityMian:应用程序入口Activity
setClassName(packageName, className) 和 new Intent(packageContext, cls)在最后都是把传入的参数赋给了ComponentName对象。
如果知道包名和MianActivity ,我们可以直接给上面两个参数设置就能跳转到你要进入的第三方应用了。其实我们也可以在程序里面通过PackageManager去获取系统安装包的一些信息。
下面给出代码和注释。
//获取包管理对象
PackageManager pm = this.getPackageManager();
Intent mainIntent = new Intent();
//以下是对Intent进行过滤,
mainIntent.setAction(Intent.ACTION_MAIN);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
//或许过滤后的Activities信息。此处需要注意一下的是第二个参数静态常量的设置影响你获取的结果,
//我这里设置的默认,也就是全部。还可以设置只获取系统的,等等
List<ResolveInfo> resolveInfos = pm
.queryIntentActivities(mainIntent, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
for (Iterator iterator = resolveInfos.iterator(); iterator.hasNext();) {
ResolveInfo resolveInfo = (ResolveInfo) iterator.next();
String nameapp = resolveInfo.activityInfo.name;
String namepack = resolveInfo.activityInfo.packageName;
String lable = (String) resolveInfo.loadLabel(pm);
System.out.println("应用程序包名:"+namepack+" 应用程序入口Activity:"+nameapp+" 程序名:"+lable);
}