1

在 Android 2.3(API 级别 10)及更早版本上将 Android Activity 注册为 BROWSABLE Intent 是否有不同的步骤?

我设置了一个带有使用自定义方案的意图过滤器的活动:

<intent-filter>
    <action name="android.intent.action.VIEW"/>
    <category name="android.intent.category.DEFAULT"/>
    <category name="android.intent.category.BROWSABLE"/>
    <data scheme="@string/myCallbackProtocol"/>
</intent-filter>

在运行 2.3 且 SDK 的模拟器设置为 2.3 的物理设备上,浏览器应用程序使用我的自定义协议将链接定向到应用程序。

但是,如果我将模拟器缩减到 2.2 或 2.1,则浏览器不会重定向,而是指示找不到服务器。我没有运行这些 API 级别的实际设备。

我想发布我的应用程序,以便它与运行 2.1 及更高版本的设备兼容。我错误地认为这应该是可能的吗?根据Android 文档 Intent.CATEGORY_BROWSABLE,从 1.0 开始就可以使用了。

谢谢!

4

2 回答 2

1

如果不是更早,我使用BROWSABLE至少回到 2.1 没有任何问题。但是,我还没有实现自定义方案,更不用说在字符串资源中定义的方案了。这是一个示例项目,演示了BROWSABLE.

于 2011-05-18T20:33:27.370 回答
1

解决了。BROWSABLE至少可以追溯到 Android 2.1。在 2.3 之前,似乎<data scheme="">从字符串资源加载会导致 Activity 未正确注册。

更改对@string/硬编码值的引用会产生所需的结果。

<intent-filter>
    <action name="android.intent.action.VIEW"/>
    <category name="android.intent.category.DEFAULT"/>
    <category name="android.intent.category.BROWSABLE"/>
    <data scheme="my-custom-protocol"/>
</intent-filter>
于 2011-05-19T17:43:06.780 回答