Android获取本机浏览器包名,并调用指定浏览器打开网页
2017-02-24 15:47
441 查看
昨天还在嘀咕着项目快做完了,接下来公司会安排什么事,结果今天就给了我一个新任务,其中要做的一个功能就是指定调用谷歌浏览器打开网页,如果没有该浏览器就提示客户进行下载,查找一番资料后,觉得这种东西还是要记录一下,避免忘记。一下为可能会用到的几个方法。
1、查找包名和class,使用如下的方法我们就可以将本机安装的所有的浏览器的报名和class的名字查找出来了。
2、根据包名判断我们的应用是否安装,使用该方法我们只需要传入context和我们需要判断的报名就好了,如果返回true,则表明我们的应用已经安装过了,我们可以直接调用。
3、调用指定的浏览器,传入我们的url地址打开网页,当然如果没有我们的浏览器,我们可以传入一个下载的url地址进行下载,因为我们的服务器端没有提供,我传入的url地址是我在百度上面下载的时候复制的url地址,也是可以达到我们想要的结果的,只是不能实现自动安装。
好了,我的功能已经差不多实现了,至于自动安装,还在思考,想到了再重新编辑,如果有人有好的建议,也可以留言给我,不胜感激。
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 block packageInfo=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_1 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.browser", "com.android.browser.BrowserActivity");//调用系统浏览器下载,下载到系统的下载地址 context.startActivity(intent); } }
好了,我的功能已经差不多实现了,至于自动安装,还在思考,想到了再重新编辑,如果有人有好的建议,也可以留言给我,不胜感激。
相关文章推荐
- android 调用默认浏览器 打开指定网页
- Android调用手机浏览器打开某网页出现异常情况
- XE5 android怎么调用自带浏览器打开网页
- Intent调用手机指定浏览器打开网页
- 调用Android自带浏览器打开网页
- android调用浏览器打开网页链接
- cocos2d-x调用android内嵌浏览器打开网页
- 调用Android自带浏览器打开网页
- android指定浏览器打开特定网页
- 在Android中调用浏览器打开网页方式
- 调用symbian 浏览器打开指定网页
- Android中通过intent打开浏览器到指定网页
- 再识Intent-实现调用Android内置浏览器打开网页
- Android调用系统自带浏览器打开网页的实现方法
- cocos2d-x调用android内嵌浏览器打开网页
- android 指定浏览器打开网页
- android 打开浏览器指定网页
- Android 调用浏览器,打开网页
- android 指定浏览器打开网页
- 在android中,如何用指定的浏览器打开某网页?