Android调用第三方App
参考资料:
http://blog.csdn.net/yudajun/article/details/8512970
http://chroya.iteye.com/blog/724804
private List<Map<String, Object>> list = null;private PackageManager mPackageManager;private List<ResolveInfo> mAllApps;private Context mContext;/*** 检查系统应用程序,并打开*/private void openApp(){//应用过滤条件Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);mPackageManager = mContext.getPackageManager();mAllApps = mPackageManager.queryIntentActivities(mainIntent, 0);//按报名排序Collections.sort(mAllApps, new ResolveInfo.DisplayNameComparator(mPackageManager));for(ResolveInfo res : mAllApps){//该应用的包名和主ActivityString pkg = res.activityInfo.packageName;String cls = res.activityInfo.name;// 打开QQif(pkg.contains("qq")){ComponentName componet = new ComponentName(pkg, cls);Intent intent = new Intent();intent.setComponent(componet);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);mContext.startActivity(intent);}}}
很多人使用startActivity时候,会碰到如下的异常:
Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
我曾经也遇到过,不过后来研究了一下之后,明白了原理,记下来,以为碰到同样困扰的兄弟们解惑。
都知道,Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新的task,遇到上面那个异常的,都是因为使用了Context的startActivity方法。解决办法是,加一个flag。
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
这样就可以再新的task里面启动这个Activity了。
Android调用第三方App相关推荐
- Android 调用第三方 APP
本文导读 如果想要在 App 1 中调用 App 2 的 Activity1,则操作流程如下: 1)首先被调用的 App 2 中要声明 Activity1 是可以被启动的 或者 Activity 是对 ...
- Android调用第三方App Activity
在App A中调用App B的Activity1.需要做两方面的配置. (1)App B要表明,Activity1是对外可见的,或是可以被启动的Activity. 可在AndroidManifest. ...
- android qq第三方登录,Android调用第三方QQ登录代码分享
本文为大家分享了调用QQ登录的相关代码,希望对大家有帮助,减少项目开发的时间,具体内容如下 1.去QQ开放平台注册帐号(http://open.qq.com/),为应用申请QQ的APP_ID , 并下 ...
- Android预装第三方app
Android预装第三方app Android.mk device-common.mk Android.mk 解压apk中的lib并对*.so库文件进行整体打包,PRESIGNED使用apk预签名 L ...
- uni-app 唤醒调用第三方app并传参(一 显示调用)
1.离线打包设置 包名: com.xxx.xxxAPP(其实只需要包名就行) 执行activity:io.dcloud.PandoraEntry 2.调用方代码 //判断app是否存在 if(plu ...
- android 安装第三方app,Android识别预装的第三方App方法实例
前言 新买一台手机,里面会有很多App,有的属于系统App,不可卸载,有的属于第三方App,厂商会预装一些常用的或者给了他们广告费的App,这些是可以卸载的. 如果要详细划分,系统App还可根据其路径 ...
- androidAPP调用第三方APP(java.lang.SecurityException: Permission Denial: starting Intent { flg=0x16c70 cm)
在写APP调用时出现的的一个问题,简单记录 1.当前调用的app中代码为: Intent paramAdapterView = new Intent();paramAdapterView.setCom ...
- Android 调用相机APP获取拍照图片和从相册选择图片
源码部分分析 Camera.java → 点我定位,注意研究1134行与2023行的两个方法. 通过源码可以发现,输出的图片有2个分支 如果你没有指定Intent里面的Extra参数,它就返回一个序列 ...
- android 调用第三方应用市场,给自身应用评分
项目需求,设置里面有一个给APP好评,实际上就是调用第三方的应用市场,给自身应用评分. 效果图 实现起来非常简单. <span style="font-size:14px;" ...
最新文章
- 集成、知识蒸馏和自蒸馏有区别?
- Selenium之运行效果展示
- android 让应用恢复前台显示_android – 当应用程序返回前台时出现问题
- JS实现各种复制到剪贴板
- .NET HttpGet 获取服务器文件下的图片信息 同步和异步方式处理
- 安装linux18双系统,Win10 安装Linux ubuntu-18.04双系统(安装指南)
- stm32cubemx中文_用 STM32 通用定时器做微秒延时函数(STM32CubeMX版本)
- Oracle WorkFlow(工作流)(一)
- 后台服务器端技术点(前沿了解)
- 某外企招聘程序员部分面试题,求作答!!!
- loadrun Java 添加参数_loadrunner手动关联参数化问题总结
- python3.7安装, 解决pip is configured with locations that require TLS/SSL问题
- org.apache.commons.lang.StringUtils中常用的方法
- Python入门--字典生成式,生成字典的公式
- python3编码(encode,decode)
- html中的邮件标签
- VMWare SCSI硬盘识别
- gromacs ngmx_GROMACS使用教程要点
- Qt--ipad滑屏效果
- A NOVEL DEEP FEATURE FUSION NETWORK FOR REMOTE SENSING SCENE CLASSIFICATION(论文翻译)