Android 获取基站信息

本文介绍了如何根据Android设备上的SIM卡类型来获取基站信息。通过TelephonyManager类可以判断网络运营商及2G/3G网络类型,并针对不同类型的SIM卡转换为相应的CdmaCellLocation或GsmCellLocation对象以获取具体的基站位置数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转:http://blog.sina.com.cn/s/blog_6e7dfa3d010184j7.html


Android 基站分CdmaCellLocation和GsmCellLocation,要根据不同的SIM卡转成不同的对象
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
   int type = tm.getNetworkType();//获取网络类型
//在中国,移动的2G是EGDE,联通的2G为GPRS,电信的2G为CDMA,电信的3G为EVDO

Location loc = null;

ArrayList CellID = new ArrayList();

//中国电信为CTC

//NETWORK_TYPE_EVDO_A是中国电信3G的getNetworkType

//NETWORK_TYPE_CDMA电信2G是CDMA

if (type == TelephonyManager.NETWORK_TYPE_EVDO_A || type == TelephonyManager.NETWORK_TYPE_CDMA || type ==TelephonyManager.NETWORK_TYPE_1xRTT)

{

location = (CdmaCellLocation) tm.getCellLocation();
if(location == null)
throw new Exception("errr");
String operator = tm.getNetworkOperator();
 int cellIDs = location.getBaseStationId();
  	int networkID = location.getNetworkId();
  	StringBuilder sb = new StringBuilder();
 sb.append(location.getSystemId());
int mnc = Integer.parseInt(nsb.toString());
int mcc = Integer.parseInt(operator.substring(0,3));
 
 

}

//移动2G卡 + CMCC + 2

/pe = NETWORK_TYPE_EDGE

//联通的2G经过测试 China Unicom 1 NETWORK_TYPE_GPRS

else if(type == TelephonyManager.NETWORK_TYPE_EDGE || type == TelephonyManager.NETWORK_TYPE_GPRS)

{

GsmCellLocation location = (GsmCellLocation)tm.getCellLocation();

location = (CdmaCellLocation) tm.getCellLocation();
if(location == null)
throw new Exception("errr");
String operator = tm.getNetworkOperator();
int mcc = Integer.parseInt(operator.substring(0,3));
int mnc = Integer.parseInt(operator.substring(3));
int cid = location.getCid();
int lac = location.getLac();

}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值