Очевидным способом обнаружения Android сервером является поиск строки "Android" из HTTP-заголовка User-Agent. Но - у меня были жалобы, что это не работает на некоторых устройствах (например, в моем HTC Evo), они не обнаружены как Android. Whatsmyuseragent.com дает для моего браузера HTC Evo 3D: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, как и Gecko) Chrome/11.0.696.34 Safari/534.24. Нет строки или версии Android. Это может быть программное обеспечение безопасности на устройстве, которое его изменяет, или проблема с HTC, но не уверена в этом.
Очевидно, что у Android Chrome на одном устройстве есть еще один, и лучше UA: Mozilla/5.0 (Linux, Android 4.0.3, HTC EVO 3D X515m Build/IML74K) AppleWebKit/535.19 (KHTML, как и Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19, но я не могу просто надеяться, что, например, Приложение для чтения QR-кода открывает Chrome, а не встроенный браузер Android, который имеет недействительный UA.
Есть ли хороший трюк (javascript call?) для надежного обнаружения Android на устройствах и в браузерах?
Изменить: похожа на ту же проблему с Galaxy S III, ту же строку User-Agent: Android Browser Detection