Android显式调用第三方app
2016-05-09 15:59
281 查看
Android显示调用App内部组件/第三方App内组件
Android提供显示调用的方法有四种API,分别是:
setClass(Context packageContext,Class<?> cls)
setClassName(Context packageName,String className)
setClassName(String packageName,String className)
setComponent(ComponentName component)
setClass/setClassName:
参数1:被调用组件所在包的Context/包名
参数2:被调用的组件Class/className
setComponent:
参数:被调用的组件
以下实例将使用上述四种API分别展示:
App A中的MainActivity调用SecondActivity
App A中的MainActivity调用App B中的MainActivity
其中:
App A:
com.example.zzz_a.MainActivity
com.example.zzz_a.SecondActivity
App B:
com.example.zzz_b.MainActivity
代码展示:
setClass(Context packageContext,Class<?> cls)
i. App内部调用:
setClassName(Context packageContext,String className)
i. App内部调用
ii. App间调用
setClassName(String packageName,String className)
i. App内部调用:
ii. App间调用:
setComponent(ComponentName component)
ComponentName对象的实例化有四种方法,分别是:
new ComponentName(parcel);
new ComponentName(Context,Class<?>);
new ComponentName(Context,String);
new ComponentName(String,String);
i. App内部调用:
ii. App间调用
或者:
……
上述代码片段就是四种API分别用于App内部/App间的组件调用的具体实现。
注:被调用的第三方App组件在manifest中的exposed属性值必须为true,否则调用会出错。
实验结果:
App内部组件调用:
App组件间调用:
Android提供显示调用的方法有四种API,分别是:
setClass(Context packageContext,Class<?> cls)
setClassName(Context packageName,String className)
setClassName(String packageName,String className)
setComponent(ComponentName component)
setClass/setClassName:
参数1:被调用组件所在包的Context/包名
参数2:被调用的组件Class/className
setComponent:
参数:被调用的组件
以下实例将使用上述四种API分别展示:
App A中的MainActivity调用SecondActivity
App A中的MainActivity调用App B中的MainActivity
其中:
App A:
com.example.zzz_a.MainActivity
com.example.zzz_a.SecondActivity
App B:
com.example.zzz_b.MainActivity
代码展示:
setClass(Context packageContext,Class<?> cls)
i. App内部调用:
Intent intent = new Intent(); intent.setClass(getApplicationContext(), SecondActivity.class); startActivity(intent);
setClassName(Context packageContext,String className)
i. App内部调用
Intent intent = new Intent(); intent.setClassName(getApplicationContext(), "com.example.zzz_a.SecondActivity"); startActivity(intent);
ii. App间调用
Intent intent = new Intent(); //获取com.example.zzz_b的Context Context context = createPackageContext("com.example.zzz_b", CONTEXT_IGNORE_SECURITY|CONTEXT_INCLUDE_CODE); intent.setClassName(context, "com.example.zzz_b.MainActivity"); startActivity(intent);
setClassName(String packageName,String className)
i. App内部调用:
Intent intent = new Intent(); intent.setClassName("com.example.zzz_a", "com.example.zzz_a.SecondActivity"); startActivity(intent);
ii. App间调用:
Intent intent = new Intent(); intent.setClassName("com.example.zzz_b", "com.example.zzz_b.MainActivity"); startActivity(intent);
setComponent(ComponentName component)
ComponentName对象的实例化有四种方法,分别是:
new ComponentName(parcel);
new ComponentName(Context,Class<?>);
new ComponentName(Context,String);
new ComponentName(String,String);
i. App内部调用:
Intent intent = new Intent(); ComponentName component = new ComponentName("com.example.zzz_a ", "com.example.zzz_a.SecibdActivity"); intent.setComponent(component); startActivity(intent);
ii. App间调用
Intent intent = new Intent(); ComponentName component = new ComponentName("com.example.zzz_b", "com.example.zzz_b.MainActivity"); intent.setComponent(component); startActivity(intent);
或者:
Intent intent = new Intent(); Context context = createPackageContext("com.example.zzz_b", CONTEXT_IGNORE_SECURITY|CONTEXT_INCLUDE_CODE); ComponentName component = new ComponentName(context, "com.example.zzz_b.MainActivity"); intent.setComponent(component); startActivity(intent);
……
上述代码片段就是四种API分别用于App内部/App间的组件调用的具体实现。
注:被调用的第三方App组件在manifest中的exposed属性值必须为true,否则调用会出错。
实验结果:
App内部组件调用:
App组件间调用:
相关文章推荐
- 浅谈Android Handler机制
- android Notification知识总结
- android Intent机制详解
- iOS字体包导入过程
- Android 实现一键切换应用主题颜色
- Android通过Get方式提交数据的乱码处理
- Android 沉浸式状态栏攻略 让你的状态栏变色吧
- 关于dl dt dd 文字过长换行在移动端显示对齐的探讨总结
- Android SDK更新下载所有版本
- android基础总结篇之七:ContentProvider之读写短消息
- iOS -- 定时器
- ios UTC 时间格式转换
- Android自定义Button背景色,弧度
- Android 高清加载巨图方案 拒绝压缩图片
- android图片压缩终极解决方案
- iOS备忘录之开发经验总结
- Snmp学习总结(二)——SNMP4J介绍
- android 无线调试
- Android限定符使用【初级】
- 对 Android 开发者有益的 40 条优化建议