有时候我们会有在自己的应用中进入另一个第三方应用的需求,首先要知道第三方应用的包名和主activity,很简单遍历一下所有的应用就能拿到了。

    private void go2App(String packageName) {
if (!isAppInstalled(this, packageName)) {
ToastUtil.showToast(this, "您没有安装此应用", Toast.LENGTH_LONG);
return;
} String mainAct = null;
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER); PackageManager manager = this.getPackageManager();
List<ResolveInfo> list = manager.queryIntentActivities(intent, PackageManager.GET_ACTIVITIES); for (int i = 0; i < list.size(); i++) {
ResolveInfo info = list.get(i);
if (info.activityInfo.packageName.equals(packageName)) {
mainAct = info.activityInfo.name;
break;
}
}
if (TextUtils.isEmpty(mainAct)) {
ToastUtil.showToast(this, "打开失败", Toast.LENGTH_LONG);
}
// intent.setComponent(new ComponentName(packageName, mainAct));//也可以使用这种方式
intent.setClassName(packageName, mainAct);
startActivity(intent); } /*
* check the app is installed
*/
private boolean isAppInstalled(Context context, String packagename) {
PackageInfo packageInfo;
try {
packageInfo = context.getPackageManager().getPackageInfo(packagename, 0);
} catch (NameNotFoundException e) {
packageInfo = null;
e.printStackTrace();
}
if (packageInfo == null) {
// System.out.println("没有安装");
return false;
} else {
// System.out.println("已经安装");
return true;
}
}

附一个打开qq浏览器的方式,其他应用如果你已经知道了包名和主activity的名称,也可使用这种方式,不过intent的action和Category可能需要改一改。

    private void go2Browser(String url) {
if (!isAppInstalled(this, "com.tencent.mtt")) {
ToastUtil.showToast(this, "您没有安装QQ浏览器", Toast.LENGTH_LONG);
return;
}
Uri uri = Uri.parse(url);
Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW");
intent.setClassName("com.tencent.mtt", "com.tencent.mtt.MainActivity");
intent.setData(uri);
startActivity(intent);
}

最新文章

  1. ios app的版本号
  2. while 循环 。。
  3. Git学习之添加远程仓库
  4. JavaScript学习笔记(高级部分—02)
  5. c 语言简单计算器源码
  6. Vue学习之路---No.4(分享心得,欢迎批评指正)
  7. net view 提示6118错误 解决方法。
  8. PDF的水印怎么去掉
  9. TCP 粘包问题浅析及其解决方案
  10. 计算属性和监听,computed,watch
  11. html5 required属性的注意事项
  12. JAVA基础知识总结:二十
  13. 【IT笔试面试题整理】字符串的组合
  14. HashMap源码学习
  15. smarty assign变量赋值
  16. rman 中遇到 ORA-01861
  17. 如何理解并正确使用MySql索引
  18. 利用Spring AOP和自定义注解实现日志功能
  19. JQuery 判断指定ID是否存在
  20. 内功心法 -- java.util.LinkedList&lt;E&gt; (4)

热门文章

  1. java中this 关键字的使用
  2. Java设计模式 工厂模式概念解析
  3. WCF传输大数据的设置
  4. 在一个老外微信PM的眼中,中国移动App UI那些事儿
  5. 练习sql语句的好去处——http://www.sqlzoo.cn/
  6. 动态加载jQuery
  7. IOS中的Block与C++11中的lambda
  8. 如何在网页中调用百度地图api
  9. win7下KiWi Syslog服务器的安装与配置
  10. Android事件分发机制(下)