国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

android 獲取手機(jī)GSM/CDMA信號(hào)信息,并獲得基站信息的方法

2019-12-12 04:50:00
字體:
供稿:網(wǎng)友

在Android中我們常用的輕松獲取WIFI信號(hào)列表,那如何獲取CDMA或者GSM的手機(jī)信號(hào)呢?

系統(tǒng)提供了TelephonyManager類,此類非常豐富,基本你所需要的手機(jī)信息都能獲取到,那下面就來看看我們所需要的CDMA與GSM信號(hào)是如何獲取的吧。

private TelephonyManager telephonyManager;
private PhoneStateListener phoneStateListener;

首先聲明兩個(gè)變量

在onCreate()方法中初始化變量

InitPhoneStateListener();telephonyManager = (TelephonyManager) this.ctx.getSystemService(Context.TELEPHONY_SERVICE);telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);telephonyManager.listen(phoneStateListener,PhoneStateListener.LISTEN_CELL_LOCATION);if(telephonyManager.getCellLocation()!=null){//獲取當(dāng)前基站信息phoneStateListener.onCellLocationChanged(telephonyManager.getCellLocation());}/** 初始化PhoneStateListener */private void InitPhoneStateListener() {phoneStateListener = new PhoneStateListener() {@Overridepublic void onCellLocationChanged(CellLocation location) {// TODO Auto-generated method stubif (location instanceof GsmCellLocation) {// gsm網(wǎng)絡(luò)phoneType = 1;GsmCell gsmCell = new GsmCell();gsmCell.lac = ((GsmCellLocation) location).getLac();gsmCell.cid = ((GsmCellLocation) location).getCid();/** 獲取mcc,mnc */String mccMnc=telephonyManager.getNetworkOperator();if(mccMnc!=null&&mccMnc.length()>=5){gsmCell.mcc = mccMnc.substring(0, 3);gsmCell.mnc = mccMnc.substring(3, 5);}gsmCell.signal=lastSignal;gsmCell.time = System.currentTimeMillis();if (gsmCell.lac != -1 && gsmCell.cid != -1) {gsmCells.add(0, gsmCell);// Collections.sort(gsmCells);// /**最多保存近3個(gè)基站信息*/// if (gsmCells.size() >3)// gsmCells.remove(3);}//獲取相鄰基站信息List neighboringList=telephonyManager.getNeighboringCellInfo();for(NeighboringCellInfo ni:neighboringList){GsmCell gb = new GsmCell();gb.mnc=mccMnc.substring(3, 5);gb.lac=ni.getLac();gb.cid=ni.getCid();gb.signal=-133+2*ni.getRssi();gb.time=System.currentTimeMillis();gsmCells.add(gb);}} else {// 其他CDMA等網(wǎng)絡(luò)try {Class cdmaClass = Class.forName("android.telephony.cdma.CdmaCellLocation");phoneType = 2;CdmaCellLocation cdma = (CdmaCellLocation) location;CdmaCell cdmaCell = new CdmaCell();cdmaCell.stationId = cdma.getBaseStationId() >= 0 ?cdma.getBaseStationId(): cdmaCell.stationId;cdmaCell.networkId = cdma.getNetworkId() >= 0 ? cdma.getNetworkId() : cdmaCell.networkId;cdmaCell.systemId = cdma.getSystemId() >= 0 ? cdma.getSystemId() : cdmaCell.systemId;/** 獲取mcc,mnc */String mccMnc=telephonyManager.getNetworkOperator();if(mccMnc!=null&&mccMnc.length()>=5){cdmaCell.mcc = mccMnc.substring(0, 3);cdmaCell.mnc = mccMnc.substring(3, 5);}cdmaCell.signal=lastSignal;cdmaCell.time = System.currentTimeMillis();int lat = cdma.getBaseStationLatitude();int lon = cdma.getBaseStationLongitude();if (lat <Integer.MAX_VALUE&& lon <Integer.MAX_VALUE) {cdmaCell.lat = lat;cdmaCell.lon = lon;}if (cdmaCell.stationId != -1&& cdmaCell.networkId != -1&& cdmaCell.systemId != -1) {cdmaCells.add(0, cdmaCell);}List neighboringList=telephonyManager.getNeighboringCellInfo();for(NeighboringCellInfo ni:neighboringList){CdmaCell cdmaBean = new CdmaCell();cdmaBean.systemId=cdmaCell.systemId;cdmaBean.lac=ni.getLac();cdmaBean.cellid=ni.getCid();cdmaBean.signal=-113+2*ni.getRssi();cdmaCells.add(cdmaBean);}} catch (ClassNotFoundException classnotfoundexception) {}}// end CDMA網(wǎng)絡(luò)super.onCellLocationChanged(location);}// end onCellLocationChanged@Overridepublic void onServiceStateChanged(ServiceState serviceState) {// TODO Auto-generated method stubsuper.onServiceStateChanged(serviceState);}@Overridepublic void onSignalStrengthsChanged(SignalStrength signalStrength) {// TODO Auto-generated method stubint asu=signalStrength.getGsmSignalStrength();lastSignal=-113+2*asu; //信號(hào)強(qiáng)度super.onSignalStrengthsChanged(signalStrength);}};}// end InitPhoneStateListener

以上就是小編為大家?guī)淼腶ndroid 獲取手機(jī)GSM/CDMA信號(hào)信息,并獲得基站信息的方法全部內(nèi)容了,希望大家多多支持武林網(wǎng)~

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新龙县| 元谋县| 寻乌县| 会东县| 鄯善县| 郎溪县| 辽阳市| 灵丘县| 油尖旺区| 隆林| 武城县| 朔州市| 梁平县| 中江县| 汉沽区| 安图县| 修水县| 柘城县| 双峰县| 射洪县| 大连市| 承德市| 宝鸡市| 桓台县| 德保县| 武川县| 金门县| 隆昌县| 富锦市| 航空| 襄樊市| 望都县| 澜沧| 梁平县| 浪卡子县| 巴彦淖尔市| 韶关市| 鸡西市| 平陆县| 合水县| 阳西县|