CellSignalStrengthGsm()被添加在API級別17
CellSignalStrengthGsm()getDbm()會給你的信號強度dBm的
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
List<CellInfo> cellInfos = telephonyManager.getAllCellInfo(); //This will give info of all sims present inside your mobile
if(cellInfos!=null){
for (int i = 0 ; i<cellInfos.size(); i++){
if (cellInfos.get(i).isRegistered()){
if(cellInfos.get(i) instanceof CellInfoWcdma){
CellInfoWcdma cellInfoWcdma = (CellInfoWcdma) telephonyManager.getAllCellInfo().get(0);
CellSignalStrengthWcdma cellSignalStrengthWcdma = cellInfoWcdma.getCellSignalStrength();
strength = String.valueOf(cellSignalStrengthWcdma.getDbm());
}else if(cellInfos.get(i) instanceof CellInfoGsm){
CellInfoGsm cellInfogsm = (CellInfoGsm) telephonyManager.getAllCellInfo().get(0);
CellSignalStrengthGsm cellSignalStrengthGsm = cellInfogsm.getCellSignalStrength();
strength = String.valueOf(cellSignalStrengthGsm.getDbm());
}else if(cellInfos.get(i) instanceof CellInfoLte){
CellInfoLte cellInfoLte = (CellInfoLte) telephonyManager.getAllCellInfo().get(0);
CellSignalStrengthLte cellSignalStrengthLte = cellInfoLte.getCellSignalStrength();
strength = String.valueOf(cellSignalStrengthLte.getDbm());
}
}
}
return strength;
}
你可以學習。更多來自: https://developer.android.com/reference/android/telephony/CellInfo.html
CellInfoCdma,CellInfoGsm,CellInfoLte,CellInfoWcdma是CellInfo的子類。其中提供了與您的移動網絡相關的所有信息。
如果您在應用程序啓動時註冊該監聽器,則您具有當前的信號強度。它不會改變,直到您再次被聽衆調用,您可以更新存儲強度的內部變量。 – Ryan 2013-05-13 19:35:16
像Ryan說的...如果你跟蹤當前的信號強度,那麼你將永遠知道它目前是什麼! – Vorsprung 2013-05-13 19:51:38