我为游戏开发了一个wap门户。我的问题是完美地检测手机设备。我的游戏提供商为我提供了支持的手机列表:
Nokia6300,SGH-X200,MOT-C261,SIE-CX70,SAMSUNG-SGH-Z140
所以,我必须检测特定wap用户支持的游戏。
我可以使用以下命令轻松检测到诺基亚设备的手机:
require_once('../TeraWurfl.php');
$wurflObj = new TeraWurfl();
$matched = $wurflObj->getDeviceCapabilitiesFromAgent();
$brand_name = $wurflObj->getDeviceCapability("brand_name");
$model_name = $wurflObj->getDeviceCapability("model_name");
$handset=$brand_name. $model_name;
// Nokia6300,Nokia6600等。
但问题出在siemence,摩托罗拉,一些三星套装以及其他许多产品上。 假设用户代理:
SIE-CX70 / 36 UP.Browser / 7.0.2.2.156(GUI)MMP / 2.0配置文件/ MIDP-2.0配置/ CLDC-1.1
为我提供型号名称: CX70 和品牌名称:西门子。 所以,如果我连接,那么得到值: SiemensCX70 。但实际是: SIE-CX70 。 所以,信息不匹配。
现在我的问题是如何才能检测出完美的手机。 请帮我检索实际信息。
由于 里亚德
答案 0 :(得分:1)
我想你已经想到了这一点,没有简单的方法可以做到这一点,你需要在你身边维护一个映射,将WURFLMODELNAME映射到你客户提供的实际手机。这样您就可以更好地显示手机名称。确保您可以执行多对一映射,以便将1个或多个WURFL模型名称映射到1个手机显示名称。
答案 1 :(得分:0)
您可以利用UAProf(一种描述手机功能的RDF格式的URL)以及用户代理,因为UAProf并不总是存在于标头中。我不会说这是完美的,因为总有一些例外。我见过一个格式无效的RDF文件。但它可能对你的情况有所帮助。
请参考这个简单的例子(Restlet):
http://shengchien.blogspot.com/2010/09/restful-mobile-detection.html