Android:指定某浏览器访问指定页面

在看 Android 面试题的时候看到这样一道题,下面回答是通过直接发送Uri把参数带过去,或者通过manifest里的intentfilter里的data属性,对这个答案不是很理解。

在搜索引擎下面查找,得到的结果内容基本如下:

         Intent intent =newIntent();        
         intent.setAction("android.intent.action.VIEW");    
         Uri content_url =Uri.parse("http://www.163.com");   
         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 名,经过了各种搜索技巧,最后解决办法如下


  1. 先下载 Development.apk 工具,安装在手机端(链接:http://pan.baidu.com/s/1eRNnHx4)
  2. 打开应用程序界面:

Android:指定某浏览器访问指定页面_第1张图片

  1. 选择要查看的应用程序,点击进入:

Android:指定某浏览器访问指定页面_第2张图片

  1. 包名到目前已经知道了,当然这不是我们使用这个工具的主要原因,我们使用这个工具主要是获取主 Activity 的名称,包名可以直接在应用商店的网址后缀,或者下载包名查看器查看

向下滑动界面:

Android:指定某浏览器访问指定页面_第3张图片

截止到目前,我们就找到了对应应用程序(这里是 UC)的主Activity, 也就是入口。那我们就可以实现在安卓中指定浏览器访问指定页面的功能:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
intent.setClassName("com.UCMobile","com.UCMobile.main.UCMobile");
startActivity(intent);

在 .setClassName(PackageName, MainActivityName) 中有两个参数,第一个参数时包名,第二个参数时主 Activity 的完整的类名。这样我们就实现了指定浏览器来访问指定的页面。

觉得对你有用的话,顶一下呗 ……

你可能感兴趣的:(Android)