android电信获取基站,移动联通电信获取基站数据库方案.pdf

移动联通电信获取基站数据库的方案

在 googleAPI 里提供了基站信息的获取类 TelephonyManager ,通过其方法getCellLocation

得到 CellLocation 即可获取到基站相关信息

但 CellLocation 是个抽象类,所以在具体使用时需要判断接入的网络制式来用其子类

CdmaCellLocation 或 GsmCellLocation 来强转

CdmaCellLocation 对应 CDMA 网,GsmCellLocation 对应 GSM 网

三大网络运营商的网络制式对应如下:

移动 2G 网 --> GSM

移动 3G 网 --> TD-SCDMA

电信2G 网 --> CDMA

电信3G 网 --> CDMA2000

联通 2G 网 --> GSM

联通 3G 网 --> WCDMA

由此可见移动,联通2G 网都可使用 GsmCellLocation

电信2G,3G 网则使用 CdmaCellLocation

那么移动 3G 和联通 3G 又当如何

其实经本人亲测,移动 3G 网也可使用 GsmCellLocation,听说是TD-SCDMA 衍生于

GSM,具体原因咱也不用纠结了,反正能用就是了

而联通的 WCDMA 据说也可使用 GsmCellLocation,那姑且就是这样吧,有条件的童鞋试

一试吧。

对于网络制式的判断调用 TelephonyManager.getNetworkType()可有多种情况,如下:

 NETWORK_TYPE_UNKNOWN

 NETWORK_TYPE_GPRS

 NETWORK_TYPE_EDGE

 NETWORK_TYPE_UMTS

 NETWORK_TYPE_HSDPA

 NETWORK_TYPE_HSUPA

 NETWORK_TYPE_HSPA

 NETWORK_TYPE_CDMA

 NETWORK_TYPE_EVDO_0

 NETWORK_TYPE_EVDO_A

 NETWORK_TYPE_EVDO_B

 NETWORK_TYPE_1xRTT

 NETWORK_TYPE_IDEN

 NETWORK_TYPE_LTE

 NETWORK_TYPE_EHRPD

通过对网络类型判断后获取对应基站信息代码片段如下:

Html 代码

1. public static ArrayList getCellIDInfo(Context context) thr

ows Exception{

2.

3. TelephonyManager manager = (TelephonyManager) context.getSyste

mService(Context.TELEPHONY_SERVICE);

4.

5. ArrayList CellID = new ArrayList ();

6. CellIDInfo currentCell = new CellIDInfo();

7.

8. int type = manager .getNetworkType();

9. Log.d(TAG, "getCellIDInfo--> NetworkType = " + type);

10. int phoneType = manager .getPhoneType();

11. Log.d(TAG, "getCellIDInfo--> phoneType = " + phoneType

);

12.

13. if (type == TelephonyManager.NETWORK_TYPE_GPRS //

GSM 网

14. || type == TelephonyManager.NETWORK_TYPE_EDGE

15.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值