在看 Android 面试题的时候看到这样一道题,下面回答是通过直接发送Uri把参数带过去,或者通过manifest里的intentfilter里的data属性
,对这个答案不是很理解。
在搜索引擎下面查找,得到的结果内容基本如下:
Intent intent =newIntent();
intent.setAction("android.intent.action.VIEW");
Uri content_url =Uri.parse("http://www.163");
intent.setData(content_url);
intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");
startActivity(intent);
只要修改以intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");
中相应的应用程序packagename 和要启动的activity即可启动其他浏览器来
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"
试了一下 uc浏览器 ,结果闪退…. 想想是接近 15 年的答案,可能是 包名, 或者是主 Activity 名 发生了改变,也就释然了…… 于是找方法怎么查看应用的主 Activity 名,经过了各种搜索技巧,最后解决办法如下
- 先下载 Development.apk 工具,安装在手机端(链接:http://pan.baidu/s/1eRNnHx4)
- 打开应用程序界面:
- 选择要查看的应用程序,点击进入:
- 包名到目前已经知道了,当然这不是我们使用这个工具的主要原因,我们使用这个工具主要是获取主 Activity 的名称,包名可以直接在应用商店的网址后缀,或者下载包名查看器查看
向下滑动界面:
截止到目前,我们就找到了对应应用程序(这里是 UC)的主Activity, 也就是入口。那我们就可以实现在安卓中指定浏览器访问指定页面的功能:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu"));
intent.setClassName("com.UCMobile","com.UCMobile.main.UCMobile");
startActivity(intent);
在 .setClassName(PackageName, MainActivityName) 中有两个参数,第一个参数时包名,第二个参数时主 Activity 的完整的类名。这样我们就实现了指定浏览器来访问指定的页面。
觉得对你有用的话,顶一下呗 ……
更多推荐
Android:指定某浏览器访问指定页面
发布评论