大家好,欢迎来到IT知识分享网。
移动联通电信获取基站数据库的方案
在 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.
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12041.html