Android如何在CDMA网络上识别运营商?

时间:2011-11-10 23:54:43

标签: android

Android提供以下方法来确定网络运营商: http://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkOperatorName()

然而,即使文档特别说:

  

返回当前注册运算符的字母名称。   可用性:仅在用户注册到网络时。 CDMA网络上的结果可能不可靠(使用getPhoneType()确定是否在CDMA网络上)。

问题是我们需要一种可靠方式来检测运营商,以便我们识别流量来源。有没有人有类似的问题,如果有,最好的解决方案是什么?

3 个答案:

答案 0 :(得分:2)

我的手机在Verizon Wireless上。每天,我开车经过手机漫游和/或接收不良的区域。使用android的脚本层,我将在下周每十分钟记录一次调用getOperatorName()的结果。

another method可能在android.telephony.cdma api中有效。那里的文档缺少可靠性免责声明。您只能获得网络ID而不是名称。不幸的是,如果这对您很重要,则需要API级别5而不是1级。

记录getOperatorName()方法的结果并没有什么特别之处。当我没有服务时,它一直返回null,当我有服务时,它一直返回“Verizon Wireless”。我相信这不是很有帮助。

编辑:添加和更正。 添加 - 链接说明 已更正 - API级别5不是17

编辑2:测试结果

答案 1 :(得分:0)

我目前正在寻找这个问题的解决方案。根据此thread,可以使用CdmaCellLocation.getNetworkIdCdmaCellLocation.getSystemId。由于德国没有CDMA网络,我无法检查这是否有效......

答案 2 :(得分:-1)

你认为这可能是谷歌拉动cdma支持的先行者吗?在框架内玩或者找到另一个游乐场就是我听到Google说的话。那个以及运营商应用程序烧成roms的事实有时会在安全方面留下大量漏洞。 至于你的问题的可能答案......从哪里可以获取信息? APN设置可能会告诉您或者build.prop中的已知载波行的断言可以提取我可能需要的信息。 (我喜欢roms)。如果您亲自检查一部手机,那么运营商通常会被打上品牌;)您从哪个有利位置获取信息?

罗布