跨App启动Activity,隐式Intent启动,ActivityNotFoundException解决
来源:互联网 发布:石家庄seo顾问服务 编辑:程序博客网 时间:2024/06/06 04:58
自己开发的应用,有时候需要在应用内部调用别人的应用,使用隐式调用他人APP的主Activity入口即可
Intent intent = new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_LAUNCHER);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//已知包名和启动Activity名 若只知道包名可以用//下面的 openApp方法 ComponentName cn = new ComponentName("com.zhou","com.zhou.ZhouActivity");intent.setComponent(cn); try { startActivity(intent); } catch (ActivityNotFoundException e) { e.printStackTrace();}
不知道入口Activity名是可以使用openApp查找
private void openApp(String packageName){ PackageManager pm = this.getPackageManager(); try { PackageInfo pi = pm.getPackageInfo(packageName, 0); Intent a = new Intent(Intent.ACTION_MAIN,null); a.addCategory(Intent.CATEGORY_LAUNCHER); a.setPackage(pi.packageName); List<ResolveInfo> list = pm.queryIntentActivities(a, 0); ResolveInfo info = list.iterator().next(); if(info !=null){ String packagename = info.activityInfo.packageName; String classname = info.activityInfo.name; Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ComponentName cn = new ComponentName(packagename, classname); intent.setComponent(cn); startActivity(intent); } } catch (NameNotFoundException e) { e.printStackTrace(); }}
如果启动的不是APP入口的Activity,而是指定的某个Activity
则需在跳转过去的Activity,即目标Activity添加过滤器
<activity android:name="com.zhou.LocalOtherActivity"> <intent-filter> <action android:name="other" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter></activity>
对应启动Intent
Intent intent = new Intent();intent.addCategory(Intent.CATEGORY_DEFAULT);intent.setAction("other");//和你过滤器设置的值一致ComponentName("com.zhou", "com.zhou.LocalOtherActivity");intent.setComponent(cn);startActivity(intent);
如果出现 ActivityNotFoundException 请检查package 是否为你目标APP的Package,即目标APP的manifest中的package!
0 0
- 跨App启动Activity,隐式Intent启动,ActivityNotFoundException解决
- 关于启动Activity的ActivityNotFoundException
- 通过Intent启动其他APP的Activity
- (转)关于启动Activity的ActivityNotFoundException
- 解决ActivityNotFoundException: No Activity found to handle Intent
- 使用Intent启动Activity
- 利用Intent启动Activity
- 使用Intent启动Activity
- 使用Intent启动Activity
- Intent 启动 Activity
- Intent启动一个Activity
- 使用Intent启动Activity
- 漫谈Intent启动Activity
- 使用Intent启动Activity
- 隐式Intent启动Activity不成功问题
- android-Intent启动activity的几种方式-隐式Intent
- Intent 用法之Activity启动
- 使用Intent启动另一个Activity
- 数据库(3):配置数据缓存方案,其他形式
- html解析工具jsoup结合模版引擎FreeMarkers的简单实例
- Linux系统的休眠与唤醒简介
- 使用outlook快速步骤功能提高邮件处理效率
- 判断节点类型
- 跨App启动Activity,隐式Intent启动,ActivityNotFoundException解决
- centos中进程管理工具
- 文章标题
- 如何将Android源码导入Eclipse中来查看(非常实用)
- 关于3DTouch
- VMware NAT模式虚拟机和主机互ping
- 去除字段中的换行符号
- spark 调度模块详解及源码分析
- 01.EasyUI加入项目