Come get la forza corrente del segnale cellulare?

Vorrei memorizzare la forza del segnale cellulare e lo faccio così:

private class GetRssi extends PhoneStateListener { @Override public void onSignalStrengthsChanged(SignalStrength signalStrength) { super.onSignalStrengthsChanged(signalStrength); Variables.signal = signalStrength.getGsmSignalStrength(); } } 

Va bene, ma questo funziona solo se cambia. Ho bisogno della forza corrente del segnale.

  • Applicazione Android per submit immagini a MySQL
  • Elenca l'elemento con CheckBox non cliccabile
  • C'è un modo per mostrare frammenti in TabHost?
  • GPS non aggiornare la posizione dopo la chiusura e riaprire l'applicazione su android
  • Cartelle Raw di Android - creazione e riferimento
  • Come avviare un'attività da una window di dialogo in Android
  • C'è un metodo per chiedere solo la forza corrente del segnale?

    2 Solutions collect form web for “Come get la forza corrente del segnale cellulare?”

    Esiste il metodo getAllCellInfo () in TelephonyManager aggiunto in API 17 che potrebbe essere una buona soluzione. Esempio di utilizzo:

     TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); // for example value of first element CellInfoGsm cellinfogsm = (CellInfoGsm)telephonyManager.getAllCellInfo().get(0); CellSignalStrengthGsm cellSignalStrengthGsm = cellinfogsm.getCellSignalStrength(); cellSignalStrengthGsm.getDbm(); 

    CellSignalStrengthGsm () viene aggiunto Aggiunto nel livello API 17

    CellSignalStrengthGsm (). GetDbm () vi darà la forza del segnale come 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; } 

    Puoi imparare di più da: https://developer.android.com/reference/android/telephony/CellInfo.html

    CellInfoCdma, CellInfoGsm, CellInfoLte, CellInfoWcdma sono le sottoclassi di CellInfo. Che fornisce tutte le informazioni relative alla tua networking mobile.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.