android 面试题(4)

 
13. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。
 

指定浏览器打开网页

如果在你的android系统上安装了多种浏览器,能否指定某浏览器访问指定页面?答案当然是:肯定的。

具体方法如下:


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

问题的关键在于我们设置了class name,也就是我们想要跳转的pakcage的activity。如果你想要跳转到其它的浏览器,只需要修改一下这个函数就OK了。

好,我们现在来让刚刚的思路来指导我们的实践。假如我们现在要直接启动UC浏览器,那么我们该怎么做呢?让我们step by step吧。

1.下载UC apk:
http://i-uc.net/read.php?2

2. 用7zip解压apk文件,得到classes.dex文件

3.下载反编译dex文件工具:
http://nchc.dl.sourceforge.net/project/dedexer/dedexer/1.5/ddx1.5.jar Dedexer 项目主页:   http://dedexer.sourceforge.net/

4.执行命令:java -jar ddx1.5.jar -o -D -d c:\     c:\classes.dex

5. 得到package name是:com.uc.browser,启动的activity是:com.uc.browser.ActivityUpdate(补充:当我在这里选择采用ActivityBrowser的时候发觉权限不够,报permiss denied 异常,而且也不是我们要的那个activity,幸运的是在第二次尝试用ActivityUpdate,刚好能满足要求)

6.修改上面的代码为intent.setClassName("com.uc.browser","com.uc.browser.ActivityUpdate");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值