当前位置:首页 > 获取信号强度
34. protected void onPause() 35. { 36.
37. super.onPause(); 38.
39. Tel.listen(MyListener, PhoneStateListener.LISTEN_NONE); 40. 41. } 42. 43. 44.
45. /* Called when the application resumes */ 46.
47. @Override
48. protected void onResume() 49. { 50.
51. super.onResume(); 52.
53. Tel.listen(MyListener,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); 54. 55. } 56. 57. 58.
59. /* —————————– */ 60.
61. /* 开始PhoneState听众*/ 62.
63. /* —————————– */ 64.
65. private class MyPhoneStateListener extends PhoneStateListener 66. 67. { 68.
69. /* 从得到的信号强度,每个tiome供应商有更新*/ 70.
71. @Override
72. public void onSignalStrengthsChanged(SignalStrength signalStrength) 73. { 74.
75. super.onSignalStrengthsChanged(signalStrength); 76.
77. Toast.makeText(getApplicationContext(), \to Firstdroid!!! GSM Cinr
= \78.
79. + String.valueOf(signalStrength.getGsmSignalStrength()),
Toast.LENGTH_SHORT).show(); 80. 81. } 82. 83. 84. }; 85. 86. 87. 88. }
CDMA:
用下面方法取得CDMA信号强度只是-1,请哪位高手请指点一下,谢了 mSignalStrength = new SignalStrength();
int cdmaDbm = mSignalStrength.getCdmaDbm(); int cdmaEcio = mSignalStrength.getCdmaEcio(); android 获取手机GSM/CDMA信号信息
在Android中我们常用的轻松获取WIFI信号列表,那如何获取CDMA或者GSM的手机信号呢?
系统提供了TelephonyManager类,此类非常丰富,基本你所需要的手机信息都能获取到,那下面就来看看我们所需要的CDMA与GSM信号是如何获取的吧。
private TelephonyManager telephonyManager; private PhoneStateListener phoneStateListener; 首先声明两个变量
在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){
//获取当前基站信息
phoneStateListener.onCellLocationChanged(telephonyManager.getCellLocation()); }
/** 初始化PhoneStateListener */ private void InitPhoneStateListener() {
phoneStateListener = new PhoneStateListener() { @Override
public void onCellLocationChanged(CellLocation location) { // TODO Auto-generated method stub
if (location instanceof GsmCellLocation) {// gsm网络 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个基站信息*/ // 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等网络 try {
Class cdmaClass = Class.forName(\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 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();
共分享92篇相关文档