Пользовательская схема URI Android не запускает приложение в некоторых версиях Android, но работает в других

У нас есть приложение, управляемое третьей стороной, которое мы можем запускать с одного из наших веб-сайтов, размещенных на нашем собственном домене. Какое-то время оно работало нормально, но в последние несколько месяцев оно начало не работать на некоторых версиях Android. .
Вместо того, чтобы запустить приложение, оно перейдет на страницу 404 в браузере.

Вот соответствующий intent-filter в AndroidManifest

<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?)

Я также проверил это с помощью Dolphin и FireFox на устройстве 4.1.1, и проблема не исчезла.

Я заметил, что на устройствах, на которых оно работает, наше приложение установлено как «Приложение по умолчанию». Если я удалю его из «Приложения по умолчанию», а затем нажму на нашу ссылку, появится небольшое всплывающее окно с вопросом, хочу ли я открыть ссылку в браузере или в нашем приложении.
Этого не происходит на устройствах, которых нет. не работать.

Кто-нибудь знает, почему это может происходить, и как я могу это решить?


person Marcus    schedule 26.03.2013    source источник
comment
На меня повлияла эта ошибка, по-видимому, на Samsung GT-I9001 с установленным Android 2.3.6. Это не полностью связано с Android и не полностью связано с поставщиком.   -  person marzapower    schedule 10.04.2013


Ответы (1)


Может быть что-то с HTC?

Для HTC DNA — да. Или, точнее, что-то с Apple. HTC решила взломать некоторые обходные пути для конкретного патента Apple, из-за которого им предъявили иск. У меня есть два блога публикации за прошлый год, описывающие происходящее.

Вполне возможно, что они также «перенесли» хак на EVO.

person CommonsWare    schedule 26.03.2013
comment
Вот это да. Спасибо за информацию. И спасибо Apple за эгоизм и тупость. Если я правильно прочитал ваш пост, я ничего не могу сделать, так как я запускаю с веб-сайта, верно? Можем ли мы, возможно, чтобы разработчики приложений зарегистрировали/создали ассоциацию приложения, когда оно установлено, чтобы средство выбора не появлялось? - person Marcus; 26.03.2013
comment
И почему других производителей это не касается? Выиграли ли они этот патентный спор против Apple (я не совсем понимаю, как работают патентные претензии)? - person Marcus; 26.03.2013
comment
@G_M: Если я правильно прочитал ваш пост, я ничего не могу сделать, так как я запускаю с веб-сайта, верно? -- AFAIK, вы правы. Можем ли мы, возможно, чтобы разработчики приложений зарегистрировали/создали ассоциацию приложения, когда оно установлено, чтобы средство выбора не появлялось? -- IIRC, вы не можете изобретать новые ассоциации приложений, поэтому, если ваше приложение не является полноценным веб-браузером, это не сработает. И почему других производителей это не касается? - еще не подали в суд, судебный процесс все еще находится на рассмотрении, лицензировал патент и т. д. Я не знаю, чтобы кто-то еще использовал обходной путь в стиле HTC. - person CommonsWare; 26.03.2013