package cn.police.bz.util;
import android.content.Context;
import android.telephony.CellLocation;
import android.telephony.TelephonyManager;
import android.telephony.cdma.CdmaCellLocation;
import android.telephony.gsm.GsmCellLocation;
public class BaseStationInfoHelper {
public static class BaseStationInfo {
/** 国家 */
public int mcc = -1;
/** 运营商 */
public int mnc = -1;
/** 基站编号 */
public int lac = -1;
/** 小区编号 */
public int cid = -1;
}
public static BaseStationInfo getSimCardInfo(Context context) {
final TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
BaseStationInfo res = new BaseStationInfo();
CellLocation clll = telephony.getCellLocation();
if (clll == null) {
return res;
}
if (clll instanceof GsmCellLocation) {
GsmCellLocation gsm = (GsmCellLocation) clll;
int lac = gsm.getLac();
String mcc = telephony.getNetworkOperator().substring(0, 3);
String mnc = telephony.getNetworkOperator().substring(3);
res.cid = gsm.getCid();
res.mcc = Integer.parseInt(mcc);
res.mnc = Integer.parseInt(mnc);
res.lac = lac;
} else if (clll instanceof CdmaCellLocation) {
CdmaCellLocation cdma = (CdmaCellLocation) clll;
int lac = cdma.getNetworkId();
String mcc = telephony.getNetworkOperator().substring(0, 3);
String mnc = telephony.getNetworkOperator().substring(3);
int cid = cdma.getBaseStationId();
res.cid = cid;
res.mcc = Integer.parseInt(mcc);
res.mnc = Integer.parseInt(mnc);
res.lac = lac;
}
return res;
}
}
有一个问题就是三星部分手机获取不到,telephony.getCellLocation()返回的是null,具体不知道为什么;有知道原因或者解决办法的麻烦告知;