【问题标题】:Android: recognized as an App or Activity that can be made "default"Android:识别为可以设为“默认”的应用或活动
【发布时间】:2012-02-18 12:02:09
【问题描述】:

当安装了多个浏览器并且未设置默认值时,我将获得选择器对话框,可以设置默认值。

应用程序(或活动)如何让系统将自己识别为网络浏览器。 如果我这样做:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
startActivity(Intent.createChooser(intent, "TEST"));

我将获得应用列表:浏览器 (google)、通讯录、Gmail、电话,但不包括 Opera (mini) 浏览器。因此,Opera 没有可浏览类别,但仍被 Android 用作网络浏览器。这是如何工作的?

【问题讨论】:

    标签: android browser android-activity default


    【解决方案1】:
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("http://www.google.com"));
    startActivity(intent);
    

    将调出浏览器选择器,包括默认复选框。数据必须是“http:”或“https:”类型。

    在对话框中选择一个项目当然会打开浏览器并转到指定的 URL。在基本 Home 应用中单击浏览器图标时实际上就是这种情况。

    这不是我希望的 100%(100% 会打开浏览器而不转到 URL),但可以接受。

    【讨论】:

      【解决方案2】:

      这是通过在清单文件中将适当的 action> 添加到 intent-filter> 来实现的,以便 Android 知道您的应用可以执行哪些操作以及它可以响应的意图。

      【讨论】:

      • 我仍然看不到系统如何通过这些属性检测“网络浏览器”。据我所知,网络浏览器的意图过滤器没有声明足够的信息来检测这一点。
      猜你喜欢
      • 2016-02-24
      • 2020-09-22
      • 2016-05-19
      • 2017-01-28
      • 2015-12-24
      • 1970-01-01
      • 2011-10-02
      • 2013-02-13
      • 2021-01-25
      相关资源
      最近更新 更多