Android自定义URI Scheme不会在某些Android版本上启动应用,但可以在其他版本上运行

时间:2013-03-26 16:16:52

标签: 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对此进行了测试,并且问题持续存在。

我注意到它在设备上工作,我们的应用程序被设置为“默认应用程序”。如果我从“默认应用”中删除它,然后点击我们的链接,小弹出窗口会询问我是否要打开浏览器或我们的应用程序的链接。
这不会发生在它无法使用的设备上。

有没有人知道为什么会这样,以及我如何解决它?

1 个答案:

答案 0 :(得分:3)

  

这可能与HTC有关吗?

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

可以想象他们也将黑客“后退”到了EVO上。