昨天还在嘀咕着项目快做完了,接下来公司会安排什么事,结果今天就给了我一个新任务,其中要做的一个功能就是指定调用谷歌浏览器打开网页,如果没有该浏览器就提示客户进行下载,查找一番资料后,觉得这种东西还是要记录一下,避免忘记。一下为可能会用到的几个方法。
1、查找包名和class,使用如下的方法我们就可以将本机安装的所有的浏览器的报名和class的名字查找出来了。

private void hasBrowser(Context context){PackageManager pm=context.getPackageManager();Intent intent=new Intent(Intent.ACTION_VIEW);intent.addCategory(Intent.CATEGORY_BROWSABLE);intent.setData(Uri.parse("http://"));List<ResolveInfo> list=pm.queryIntentActivities(intent, PackageManager.GET_INTENT_FILTERS); if(size>0){for (int i = 0; i < size; i++) {ActivityInfo activityInfo=list.get(i).activityInfo;Log.i("GetBrowserInfo", "The packageName is "+activityInfo.packageName+" "+activityInfo.name+"\n");}}}

2、根据包名判断我们的应用是否安装,使用该方法我们只需要传入context和我们需要判断的报名就好了,如果返回true,则表明我们的应用已经安装过了,我们可以直接调用。

private boolean isAppInstalled(Context context,String packageName){PackageInfo packageInfo;try {packageInfo=context.getPackageManager().getPackageInfo(packageName, 0);} catch (NameNotFoundException e) {// TODO Auto-generated catch blockpackageInfo=null;e.printStackTrace();}if(packageInfo==null){return false;}else{return true;}}

3、调用指定的浏览器,传入我们的url地址打开网页,当然如果没有我们的浏览器,我们可以传入一个下载的url地址进行下载,因为我们的服务器端没有提供,我传入的url地址是我在百度上面下载的时候复制的url地址,也是可以达到我们想要的结果的,只是不能实现自动安装。

if(isAppInstalled(context, "com.android.chrome")){Intent intent=new Intent(Intent.ACTION_VIEW);intent.addCategory(Intent.CATEGORY_BROWSABLE);intent.setData(Uri.parse("http://u.androidgame-store.com/new/game1/4/110904/com.android.chrome-49.0.2623.91-262309101.apk?f=baidu_1"));//复制的百度下载链接intent.setClassName("com.android.chrome", "com.google.android.apps.chrome.Main");context.startActivity(intent);}else{Toast.makeText(context, "亲,您尚未安装谷歌浏览器,请先安装", Toast.LENGTH_SHORT).show();//http://u.androidgame-store.com/new/game1/4/110904/com.android.chrome-49.0.2623.91-262309101.apk?f=baidu_1Intent intent=new Intent(Intent.ACTION_VIEW);intent.addCategory(Intent.CATEGORY_BROWSABLE);intent.setData(Uri.parse("http://u.androidgame-store.com/new/game1/4/110904/com.android.chrome-49.0.2623.91-262309101.apk?f=baidu_1"));intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");//调用系统浏览器下载,下载到系统的下载地址context.startActivity(intent);}}

好了,我的功能已经差不多实现了,至于自动安装,还在思考,想到了再重新编辑,如果有人有好的建议,也可以留言给我,不胜感激。

Android获取本机浏览器包名,并调用指定浏览器打开网页相关推荐

  1. java怎么获取手机权限,Android 获取手机全部应用包名以及权限

    Android 获取手机所有应用包名以及权限 package gongzibai.co.cc; import java.util.List; import android.app.Activity; ...

  2. Android获取第三方程序的包名

    前言 有时我们需要在自己的程序调起第三方程序,这个时候我们就需要知道第三方程序的包名和入口界面的Activity. 下面我们介绍几种方式获取第三方程序的包名及程序入口Activity. 1.使用adb ...

  3. Android 在Android手机上获取其他应用的包名及版本号

    获取Android手机上其他应用的包名及版本号方法有很多,可以通过AAPT从APK包中直接获取,也可以通过代码在手机上获取.显然,对于产品或者用户来说要获取这些信息,在手机上获取更为简便. 下面我们来 ...

  4. android 扫描所有图片格式,Android获取本机各种类型文件列表(音乐、视频、图片、文档等)...

    介绍 本篇介绍Android获取本机各种类型文件的方法,已经封装成工具类,末尾有源码下载地址. 提示 获取音乐.视频.图片.文档等文件是需要有读取SD卡的权限的,如果是6.0以下的系统,则直接在清单文 ...

  5. Android NFC标签写入应用包名,感应到标签自动打开应用

    首先在AndroidManifest.xml文件中添加如下配置 <!-- SDK版本至少为14 --> <uses-sdk android:minSdkVersion="1 ...

  6. C#获取本机网络连接名,获取和设置IP地址

    C#获取本机网络连接名,获取和设置IP地址,使用WMI接口 新建windowsForm应用程序GetAndSetIpAddressDemo,将默认的窗体Form1重命名为FormGetAndSetIP ...

  7. 根据包名,在指定空间中创建对象

    最近在牛客网上看到一道题,感觉很有意思,具体如下: 描述 :根据包名,在指定空间中创建对象 输入描述:namespace({a: {test: 1, b: 2}}, 'a.b.c.d') 输出描述:{ ...

  8. python调用指定浏览器打开网页

    调用指定浏览器打开网页(以IE为例): import time import webbrowser import os#浏览器运行目录 IEPath = "C:\Program Files\ ...

  9. wifi因服务器停止响应,如果浏览器由于服务器停止响应而无法打开网页,该怎么办...

    如果浏览器由于服务器停止响应而无法打开网页,该怎么办 如果野生动物园浏览器由于服务器停止响应而无法打开网页,该怎么办?如果您在使用Safari浏览网页的过程中遇到消息" Safari无法打开 ...

最新文章

  1. 解决通过vue-router打开tab页,下次进入还是上次history缓存的界面状态的问题
  2. 数据可视化模板_10分钟,做一份数据可视化分析报表
  3. 4.OD-调试示例1
  4. java 并发 主键_高并发数据库自增主键分析
  5. java web 应用技术与案例教程_《Java Web应用开发技术与案例教程》怎么样_目录_pdf在线阅读 - 课课家教育...
  6. AndroidStudio_android多线程和异步任务_要学内容介绍_相关知识点---Android原生开发工作笔记241
  7. 如何辨别真假柯达胶卷
  8. iso12233测试方法_ISO12233图像分辨率测试卡的使用方法
  9. 飞书信终极外贸自建站系统带分销拼团社交裂变自动售后机器人
  10. 显卡更新显示计算机无法识别,显卡驱动更新不了怎么办 显卡驱动更新不了解决方法...
  11. Validation failed判断错误
  12. android备份手机号码,简单四步 完成Android手机通讯录云备份操作
  13. ietester测试本地html,网站浏览器兼容测试软件–IETester
  14. 充电水滴融合特效 html+css
  15. 基于微信小程序的货物管理系统的设计与实现-计算机毕业设计源码+LW文档
  16. 【漏洞学习——SQL】华图教育某分站SQL注入漏洞
  17. 网络架构采用 bs/cs 混搭模式_最高处|SM一姐出道20年充满偶像气质天生音乐才能还有最高级的混搭_休闲...
  18. 9种小程序赚钱方法!看懂的人已经在行动了
  19. 【C语言】求s = a + aa + aaa + aaaa + aa...a的值,其中a是一个数字
  20. Unity3d 实现落叶飘效果

热门文章

  1. Archlinux安装UEFI Grub
  2. uni-app 接入银联H5支付(Java)思路代码
  3. 莆田新光电影院2008年1月份电影列表
  4. On hand QuantitiesTransaction Qantiites
  5. Mac视频播放器Elmedia Video Player Pro for Mac
  6. 分糖果算法题-C++实现
  7. TMDSEVM6657LS评估板恢复出厂默认状态
  8. 2023年第八届数维杯大学生数学建模挑战赛 A题 河流-地下水系统水体污染研究
  9. ffprobe获取视频的分辨率帧数等信息
  10. 【工业机器人】工业机器人之五大机械结构及关键零组件分析