开发者社区> 范大脚脚> 正文

调用系统默认浏览器访问网址

简介:
+关注继续查看

一、启动android默认浏览器

 

    Intent intent= new Intent();        
    intent.setAction("android.intent.action.VIEW");    
    Uri content_url = Uri.parse("http://www.cnblogs.com");   
    intent.setData(content_url);  
    startActivity(intent);

这样子,android就可以调用起手机默认的浏览器访问。


 

二、指定相应的浏览器访问


1、指定android自带的浏览器访问

( “com.android.browser”:packagename   ;“com.android.browser.BrowserActivity”:启动主activity)


                Intent intent= new Intent();        
                intent.setAction("android.intent.action.VIEW");    
                Uri content_url = Uri.parse("http://www.cnblogs.com");   
                intent.setData(content_url);           
                intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");   
                startActivity(intent);

2、启动其他浏览器(当然该浏览器必须安装在机器上)


只要修改以下相应的packagename 和 主启动activity即可调用其他浏览器


 

intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");

uc浏览器":"com.uc.browser", "com.uc.browser.ActivityUpdate“

opera    :"com.opera.mini.android", "com.opera.mini.android.Browser"


qq浏览器:"com.tencent.mtt", "com.tencent.mtt.MainActivity"

 

三、打开本地html文件

打开本地的html文件的时候,一定要指定某个浏览器,而不能采用方式一来浏览,具体示例代码如下

 

                Intent intent= new Intent();        
                intent.setAction("android.intent.action.VIEW");    
                Uri content_url = Uri.parse("content://com.android.htmlfileprovider/sdcard/help.html");   
                intent.setData(content_url);           
                intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");   
                startActivity(intent);
 

关键点是调用了”content“这个filter。

以前有在win32编程的朋友,可能会觉得用这种形式”file://sccard/help.html“是否可以,可以很肯定的跟你说,默认的浏览器设置是没有对”file“这个进行解析的,如果要让你的默认android浏览器有这个功能需要自己到android源码修改manifest.xml文件,然后自己编译浏览器代码生成相应的apk包来重新在机器上安装。

大体的步骤如下:

1、打开 packages/apps/Browser/AndroidManifest.xml文件把加到相应的<intent-filter>后面就可以了

 

      <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="file" />
            </intent-filter>
2、重新编译打包,安装,这样子,新的浏览器就支持”file“这个形式了


有兴趣的可以去试试。



本文转自java豆子博客园博客,原文链接:http://www.cnblogs.com/error404/archive/2011/11/16/2251065.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux系统不能解析域名
Linux系统不能解析域名
66 0
linux系统域名无法解析,提示Name or service not known
linux系统域名无法解析,提示Name or service not known
1170 0
【计算机网络】应用层 : DNS 域名解析系统 ( 域名 | 域名服务器 | 域名解析过程 | 递归查询 | 迭代查询 | 高速缓存 )
【计算机网络】应用层 : DNS 域名解析系统 ( 域名 | 域名服务器 | 域名解析过程 | 递归查询 | 迭代查询 | 高速缓存 )
284 0
最全、最系统的域名申请教程
能帮你省下一个亿的域名申请教程
642 0
ICANN RSSAC037:域名根服务器系统治理模型提案
在本提案中,ICANN 根服务器系统咨询委员会 (RSSAC) 提出了域名系统 (DNS) 根服务器系统 (RSS) 及其根服务器运营商(RSO) 的治理模型。本提案的目标读者是互联网名称与数字地址分配机构 (ICANN) 董事会、ICANN 社群以及更广泛的互联网社群。 现如今,互联网上的主机数量是 DNS 根服务器系统最初设计之时的成千上万倍。当时,根服务的运营成本微乎其微,而且通过网络上开展业务的价值可以忽略不计。但现在,网络已经发展壮大到数十亿台主机和数十亿用户,新的治理结构和商业模型应运而生,所有这些变化都对基础设施提出了新的期望。在经历所有这些变化期间,作为基础设施一部分的根服务
497 0
linux系统中域名绑定至项目
修改tomact/config/server.cml文件 阿里云SLB实例采用内网机制,监听后端协议端口。 邮箱:ithelei@sina.cn GoodLuck
1064 0
git学习------>在CenterOS系统上安装GitLab并自定义域名访问GitLab管理页面
目前就职的公司一直使用SVN作为版本管理,现在打算尝试从SVN迁移到Git。安排我来预言并搭建好相关的环境以及自己尝试使用Git。今天我就尝试在Center OS系统上安装GitLab,现在在此记录一下整个安装过程。
3552 0
+关注
范大脚脚
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
“域”感——《域名投资从入门到精通》
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载