您的位置:首页 > 移动开发 > Android开发

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

2017-02-24 15:47 441 查看
昨天还在嘀咕着项目快做完了,接下来公司会安排什么事,结果今天就给了我一个新任务,其中要做的一个功能就是指定调用谷歌浏览器打开网页,如果没有该浏览器就提示客户进行下载,查找一番资料后,觉得这种东西还是要记录一下,避免忘记。一下为可能会用到的几个方法。

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);
}
}


好了,我的功能已经差不多实现了,至于自动安装,还在思考,想到了再重新编辑,如果有人有好的建议,也可以留言给我,不胜感激。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: