views:

1307

answers:

3

I've got a request from a customer to automatically detect the type of mobile device (not the browser, the type. ex: Moto Q, Blackjack II, etc.) and automatically select the device from a drop down with a list of supported devices.

So far I've found that the HTTP Headers (submitted by mobile IE) contain information such as

  • Resolution
  • UA-CPU (i've seen ARM from WM 2003 and x86 from WM5)
  • User Agent (which basically just says Windows CE)

The only thing I can think of right now is possibly using a combination of the resolution/cpu and making a "best guess"

Any thoughts?

+1  A: 

What exactly does the customer mean by "supported". Surely it means that the phone in question supports the web application and it's inner functionality - wouldn't it be better then to forget device detection and simply focus on detecting those capabilities required for the app to function properly? For example, if my mobile website requires Ajax to work then instead of listing all the devices which are said to "support Ajax" I could do some simple object detection to find out for myself.

Device detection, just like browser detection is unreliable. Yes, it's possible but I wouldn't recomend it... on a project I've done we used the User Agent string to detect various devices. The indexOf javaScript method came in handy! :)

J-P
+4  A: 

You may want to have a look at WURFL, here: http://wurfl.sourceforge.net/.

From the site:

So... What is WURFL? The WURFL is an XML configuration file which contains information about capabilities and features of many mobile devices.

The main scope of the file is to collect as much information as we can about all the existing mobile devices that access WAP pages so that developers will be able to build better applications and better services for the users.

TehOne
A: 

Another fast and easy solution is Apache Mobile Filter: http://www.apachemobilfilter.org

Idel