最近年底了,项目比较忙,虽然用笔把要总结的技巧来技术写下了,但是一直没有时间来更新。今天要说的是在App中调用其他APP界面的总结,我们经常需要给别的程序调用自己程序的UI界面,这时可以有三种方式来提供调用。

1、使用隐匿intent的方式调用,这种方式是比较推荐的,也比较简单

首先在自己应用的Mainifest.xml中加入如下代码:

android:launchMode="singleTask">

category>

intent-filter>

activity>

这里的“com.mhwang.CallActivity ”就是提供的activity的包名及位置,

就是对方要调用你的界面所提供的动作,当然事先得告诉对方。然后对方才可以在他那边调用。

调用代码如下所示:

Intent intent = new Intent();

intent.setAction("android.intent.mhwang.CALL");

startActivity(intent);

}catch (Exception e){

Toast.makeText(this,"请先安装该app",Toast.LENGTH_SHORT).show();

}

当调用出错时或者没有安装该APP时,会报出提示。

2、利用ComponentName方式,这种方式不用提供者刻意在MainFest.xml中修改activity属性,调用者只要知道提供者的包名和Activity名就可以了。

Intent intent = new Intent();

ComponentName name = new ComponentName("com.mhwang.test"

,"com.mhwang.test.CallActivity");

intent.setComponent(name);

startActivity(intent);

}catch (Exception e){

Toast.makeText(this,"请先安装该app",Toast.LENGTH_SHORT).show();

}

这里要注意,ComponentName name = new ComponentName(“com.mhwang.test”

,”com.mhwang.test.CallActivity”);前面的字符串是包名,后面的完整路径名,后面不可省略掉包名,写成CallActivity是不行的。

3、使用广播形式,这种方法要求在被调用的APP中,编写一个广播接收器来启动Activity。

public class CallReceiver extends BroadcastReceiver{

@Override

public void onReceive(Context context, Intent intent) {

if(intent.getAction().equals("android.intent.mhwang.CALL")){

Intent i = new Intent(context,CallActivity.class);

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(i);

}

}

}

需要注意的是,i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);不可以漏掉,不然启动不了,因为context.startActivity与我们平时的直接startActivity是不一样的,具体区别可以查阅资料,所以在广播中调用Activity时,需要加上i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 还有,不要忘记注册静态广播。

最后,调用都需要调用的时候只要发送一个广播就可以了。

Intent intent = new Intent("android.intent.mhwang.CALL");

sendBrocadcast(Intent);

android调用另一个app,Android调用另一个App界面相关推荐

  1. android打包诸多so成一个aar并调用aar中的so流程总结

    今天遇到一个需求,需要把项目中的诸多的so封装成一个aar,直接使用这个aar进行调用,因为诸多的so看起来太多了,不太好管理,封装成一个aar也变相的达到了加密的效果. 文章目录 打包aar流程 第 ...

  2. Android app中调用启动其他应用(系统应用和第三方应用

    一.打开第三方应用 方法一 Intent intent=new Intent(); //包名 包名+类名(全路径) intent.setClassName("com.linxcool&quo ...

  3. 可测含多进程的app-- python调用adb命令获取Android App应用的性能数据:CPU、GPU、内存、电池、耗电量(含python源码)

    可测含多进程的app–Python–通过adb命令获取Android App应用的性能数据:CPU.GPU.内存.电池.耗电量,并与Perfdog取值对比结果 1.原理 python脚本通过os.po ...

  4. Android之ksoap2-android详解与调用天气预报Webservice完整实例

    Google为Android平台开发Web Service客户端提供了ksoap2-android项目,在这个网址下载开发包http://code.google.com/p/ksoap2-androi ...

  5. Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑

    原文:Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑 版权声明:我已委托"维权骑士"(rightknights.com)为我的文章进行维权行动.转载务必 ...

  6. Android WebView 和 javaScript的互相调用(一)

    原文出处:http://blog.csdn.net/wangtingshuai/article/details/8631835 WebView相关阅读 Android WebView 和 javaSc ...

  7. android视频分享功能吗,Unity 调用 Android 分享功能(基于ShareRec SDK视频分享)

    需求 Mob 平台是一个强大的提供分享功能的平台,为移动开发者提供 ShareSDK 社交分享.ShareREC 手游录像分享.短信验证码 SDK 及 BigApp 等免费服务. Unity 使用 S ...

  8. 02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译

     1  编写以下案例(下面的三个按钮都调用了底层的C语言): 项目案例的代码结构如下: 2 编写DataProvider的代码: package com.example.ndkpassdata; ...

  9. android编程 自动裁剪图片,Android编程实现调用相册、相机及拍照后直接裁剪的方法...

    本文实例讲述了Android编程实现调用相册.相机及拍照后直接裁剪的方法.分享给大家供大家参考,具体如下: package com.cvte.health.phone; import java.io. ...

最新文章

  1. paip.http 404错误 的解决
  2. 为什么PUE只说明了数据中心能效的一部分?
  3. python enumerate_python中enumerate的用法实例解析
  4. java 二维数组位置_请完成下列Java程序:查找一个矩阵中的鞍点,对于一个二维数组中的鞍点,该点位置上的元素在该行上...
  5. [设计模式]简单工厂和工厂方法模式适用场景
  6. “万物互联”的时代来了!鸿蒙系统OS 2.0重磅发布:“朋友圈”逐渐扩大
  7. MATLAB库函数radarvcd介绍
  8. js触发click事件
  9. 非家用的监控摄像头都无复位功能
  10. CSDN设置主题背景
  11. 关于PHP 源码 加密的 一些 学习(黑刀)
  12. 重邮第八届ACM大赛-预赛题解报告
  13. oracle 将钱转换万元单位,oracle中单位换算。
  14. volo拉丁语_你为什么学习拉丁语?
  15. linux常用重启命令,linux常用关机和重启命令
  16. 12月26日学习记录
  17. 【史上最全App开发知识分享】如何从零开始成为app开发专家?
  18. Web端 Html5 直接播放 .ts 视频
  19. Android Java小知识点集锦
  20. [工具书]Java学习笔记

热门文章

  1. kaldi中文语音识别thchs30模型训练
  2. 自学UE4 第三天,AI攻击机制 2022/5/20
  3. 眼睛血管分割matlab版本
  4. 事情永远做不完,却什么都带不走
  5. Python 把蓝底照片转化为白底照片
  6. 【计算机视觉】opencv入门学习笔记Part.1
  7. php面试题狼兔,面试题总结 - 疯狂的兔子的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. ceph---ceph osd DNE状态对集群的影响
  9. Ubuntu下搭建SVN与Apache权限控制
  10. mailgun php版本,如何使用mailgun php API仅向bcc发送邮件?