android调用另一个app,Android调用另一个App界面
最近年底了,项目比较忙,虽然用笔把要总结的技巧来技术写下了,但是一直没有时间来更新。今天要说的是在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界面相关推荐
- android打包诸多so成一个aar并调用aar中的so流程总结
今天遇到一个需求,需要把项目中的诸多的so封装成一个aar,直接使用这个aar进行调用,因为诸多的so看起来太多了,不太好管理,封装成一个aar也变相的达到了加密的效果. 文章目录 打包aar流程 第 ...
- Android app中调用启动其他应用(系统应用和第三方应用
一.打开第三方应用 方法一 Intent intent=new Intent(); //包名 包名+类名(全路径) intent.setClassName("com.linxcool&quo ...
- 可测含多进程的app-- python调用adb命令获取Android App应用的性能数据:CPU、GPU、内存、电池、耗电量(含python源码)
可测含多进程的app–Python–通过adb命令获取Android App应用的性能数据:CPU.GPU.内存.电池.耗电量,并与Perfdog取值对比结果 1.原理 python脚本通过os.po ...
- Android之ksoap2-android详解与调用天气预报Webservice完整实例
Google为Android平台开发Web Service客户端提供了ksoap2-android项目,在这个网址下载开发包http://code.google.com/p/ksoap2-androi ...
- Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑
原文:Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑 版权声明:我已委托"维权骑士"(rightknights.com)为我的文章进行维权行动.转载务必 ...
- Android WebView 和 javaScript的互相调用(一)
原文出处:http://blog.csdn.net/wangtingshuai/article/details/8631835 WebView相关阅读 Android WebView 和 javaSc ...
- android视频分享功能吗,Unity 调用 Android 分享功能(基于ShareRec SDK视频分享)
需求 Mob 平台是一个强大的提供分享功能的平台,为移动开发者提供 ShareSDK 社交分享.ShareREC 手游录像分享.短信验证码 SDK 及 BigApp 等免费服务. Unity 使用 S ...
- 02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译
1 编写以下案例(下面的三个按钮都调用了底层的C语言): 项目案例的代码结构如下: 2 编写DataProvider的代码: package com.example.ndkpassdata; ...
- android编程 自动裁剪图片,Android编程实现调用相册、相机及拍照后直接裁剪的方法...
本文实例讲述了Android编程实现调用相册.相机及拍照后直接裁剪的方法.分享给大家供大家参考,具体如下: package com.cvte.health.phone; import java.io. ...
最新文章
- paip.http 404错误 的解决
- 为什么PUE只说明了数据中心能效的一部分?
- python enumerate_python中enumerate的用法实例解析
- java 二维数组位置_请完成下列Java程序:查找一个矩阵中的鞍点,对于一个二维数组中的鞍点,该点位置上的元素在该行上...
- [设计模式]简单工厂和工厂方法模式适用场景
- “万物互联”的时代来了!鸿蒙系统OS 2.0重磅发布:“朋友圈”逐渐扩大
- MATLAB库函数radarvcd介绍
- js触发click事件
- 非家用的监控摄像头都无复位功能
- CSDN设置主题背景
- 关于PHP 源码 加密的 一些 学习(黑刀)
- 重邮第八届ACM大赛-预赛题解报告
- oracle 将钱转换万元单位,oracle中单位换算。
- volo拉丁语_你为什么学习拉丁语?
- linux常用重启命令,linux常用关机和重启命令
- 12月26日学习记录
- 【史上最全App开发知识分享】如何从零开始成为app开发专家?
- Web端 Html5 直接播放 .ts 视频
- Android Java小知识点集锦
- [工具书]Java学习笔记
热门文章
- kaldi中文语音识别thchs30模型训练
- 自学UE4 第三天,AI攻击机制 2022/5/20
- 眼睛血管分割matlab版本
- 事情永远做不完,却什么都带不走
- Python 把蓝底照片转化为白底照片
- 【计算机视觉】opencv入门学习笔记Part.1
- php面试题狼兔,面试题总结 - 疯狂的兔子的个人空间 - OSCHINA - 中文开源技术交流社区...
- ceph---ceph osd DNE状态对集群的影响
- Ubuntu下搭建SVN与Apache权限控制
- mailgun php版本,如何使用mailgun php API仅向bcc发送邮件?