Android 自定义 URI 方案无法在某些版本的 Android 上启动应用程序,但适用于其他版本

标签 android android-intent uri intentfilter

我们有一个由第三方管理的应用程序,我们可以从我们自己的域上托管的网站之一启动该应用程序。该应用程序在一段时间内运行良好,但在过去几个月的某个时候,它开始无法在某些Android 版本。
它不会启动应用程序,而是会转到浏览器中的 404 页面。

这是 AndroidManifest 中的相关 intent-filter

<intent-filter>
    <data scheme="http"
            host="m.ourdomain.net"
            path="/OurApp"/>
    <action name="android.intent.action.VIEW"/>
    <category name="android.intent.category.DEFAULT"/>
    <category name="android.intent.category.BROWSABLE"/>
</intent-filter>

我们网站上的链接如下所示:

string linkAddress = "http://m.ourdomain.net/OurApp?Location=" + locName + "&IP_Address=" + ip;

调用者:

Response.Redirect(linkAddress);

我能够在多种设备上进行测试:
它适用于 Android 版本 4.0.4 (Moto Bionic) 和 4.1.2 (Moto RAZR)。
不适用于版本 2.3.5 (HTC EVO) 和 4.1.1 (HTC DNA)。
(会不会是HTC的事?)

我还在 4.1.1 设备上使用 Dolphin 和 FireFox 对此进行了测试,问题仍然存在。

我注意到在它运行的设备上,我们的应用程序被设置为“默认应用程序”。如果我从“默认应用程序”中将其删除,然后单击我们的链接,则会出现一个小弹出窗口,询问我是否想使用浏览器或我们的应用程序打开该链接。
在它不工作的设备上不会发生这种情况。

有人知道为什么会发生这种情况,以及我该如何解决它吗?

最佳答案

Could it be something with HTC?

对于 HTC DNA 来说,是的。或者,也许更准确地说,这是苹果公司的事情。 HTC 选择破解他们被起诉的一项特定苹果专利的一些变通办法。我有two博客posts从去年开始描述正在发生的事情。

可以想象,他们也将黑客行为“反向移植”到了 EVO 上。

关于Android 自定义 URI 方案无法在某些版本的 Android 上启动应用程序,但适用于其他版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15642080/

相关文章:

android - 在 Fragment 中哪里发起 View ? onViewCreated 或 onActivityCreated

android - 在 DatePicker 中设置最大日期

android - 从相机中选取图像时无法提供结果,但从图库中选取图像时没有问题

android - 如何使用抽屉导航打开新 Activity ?

php - 从 url codeigniter 获取值参数

java - 如何将 PDF 文件上传到 Parse 服务器?

android - IMarketBillingService.java 从未在应用程序的 gen 文件夹中创建?

android - 有没有办法在不扩展 YoutubeBaseActivity、YoutubePlayerSupportfragment 和 intent 的情况下在应用程序中使用 youtubePlayerView

android使用内置图库打开特定文件夹

android - 如何获取存储在SDCARD中的图片的Uri?