对于我的应用程序,我需要做一些基于本地电话运营商的检查。我发现有几种可能的方法可以在其他移动操作系统(IMSI,...)上获取这些信息。对于Windows phone7,我找到了一种对基于操作系统版本>=7.1的设备进行检查的方法。
http://msdn.microsoft.com/en-us/library/microsoft.phone.net.networkinformation.devicenetworkinformation.cellularmobileoperator%28v=VS.92%29.aspx
现在我的问题是:有没有办法获得7.1以下设备的运营商信息?
谢谢
发布于 2011-09-13 23:04:58
IIRC,用户代理字符串应该包含您正在查找的大部分信息,例如
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0) Asus;Galaxy6 (通过http://madskristensen.net/post/Windows-Phone-7-user-agents.aspx)
UA字符串的一般格式是(对于芒果):Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; <manufacturer>; <model> [;<operator])
因此,正如您所看到的,运营商信息可能在UA字符串中可用,但不能保证(它由每个运营商决定是否传递它)。这也适用于(我相信)低于7.5版本的操作系统。
然而,从实用的角度来看,这并不是一个非常可靠的确定载体的方法。您也许可以通过查找IP地址所有者来补充/补充这一点--获取手机(3G,而不是wifi )的IP地址,并检查哪个运营商拥有该地址块。这样做的好处是通知您用户当前通过哪个运营商访问数据,这可能与用户订阅的实际运营商不同。
Joe Healy有一篇很棒的文章,展示了来自不同WP7设备here的许多不同的UA字符串
另请参阅http://blogs.msdn.com/b/iemobile/archive/2010/03/25/ladies-and-gentlemen-please-welcome-the-ie-mobile-user-agent-string.aspx
https://stackoverflow.com/questions/7403445
复制相似问题