Controllo la potenza del segnale per i dispositivi CDMA. Qualcuno può specificare il range signalStrength.getCdmaDbm()
restituisce ?. Il valore più basso è -120 ma per la piena potenza del segnale qual è il valore? Il più alto che ho ottenuto è -52.Intervallo per signalStrength in dbm per dispositivi CDMA
10
A
risposta
16
Beh, non sono sicuro se questo è quello che stai cercando, ma dopo aver dato un'occhiata al file SignalStrength.java nella fonte Android ho notato un po 'di codice che ha un sacco di livelli per i livelli di cdma dbm ed ecio.
DBM
level 4 >= -75
level 3 >= -85
level 2 >= -95
level 1 >= -100
Ecio
level 4 >= -90
level 3 >= -110
level 2 >= -130
level 1 >= -150
e il livello è il più basso dei due
actualLevel = (levelDbm < levelEcio) ? levelDbm : levelEcio;
ma ho notato che questo non correla alle barre mostra reale nella notifica. Se in 3G, questo livello viene ignorato e viene utilizzato il rapporto Segnale per rumore.
signalStrength.getEvdoSnr() // value is 0 to 8 so divide by two to get the bars
se i dati scendono da 3G a 1x, quindi utilizzare il livello attuale.
Questo è stato il mio codice per trovare mostrare il numero di barre.
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
super.onSignalStrengthsChanged(signalStrength);
if (signalStrength.isGsm()) {
if (signalStrength.getGsmSignalStrength() != 99)
signalStrengthValue = signalStrength.getGsmSignalStrength() * 2 - 113;
else
signalStrengthValue = signalStrength.getGsmSignalStrength();
} else {
final int snr = signalStrength.getEvdoSnr();
final int cdmaDbm = signalStrength.getCdmaDbm();
final int cdmaEcio = signalStrength.getCdmaEcio();
int levelDbm;
int levelEcio;
int level = 0;
if (snr == -1) {
if (cdmaDbm >= -75) levelDbm = 4;
else if (cdmaDbm >= -85) levelDbm = 3;
else if (cdmaDbm >= -95) levelDbm = 2;
else if (cdmaDbm >= -100) levelDbm = 1;
else levelDbm = 0;
// Ec/Io are in dB*10
if (cdmaEcio >= -90) levelEcio = 4;
else if (cdmaEcio >= -110) levelEcio = 3;
else if (cdmaEcio >= -130) levelEcio = 2;
else if (cdmaEcio >= -150) levelEcio = 1;
else levelEcio = 0;
level = (levelDbm < levelEcio) ? levelDbm : levelEcio;
} else {
if (snr == 7 || snr == 8) level =4;
else if (snr == 5 || snr == 6) level =3;
else if (snr == 3 || snr == 4) level = 2;
else if (snr ==1 || snr ==2) level =1;
}
text.setText("Bars= " + level);
}
}
in uso su questo metodo di creare al di sotto, e anche fare in modo manifesto utilizza READ_PHONE_STATE.
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
AndroidPhoneStateListener phoneStateListener = new AndroidPhoneStateListener(text);
telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
Problemi correlati
- 1. Android disable "SignalStrength", ecc per accedere LogCat
- 2. Ottieni ID cella e LAC nei dispositivi BlackBerry CDMA (OS5 e versioni successive)
- 3. per dispositivi mobili
- 4. MySQL - Raggruppa per intervallo
- 5. Android Come identificare l'operatore sulla rete CDMA?
- 6. OpenGL (per dispositivi mobili) Esercitazioni per principianti
- 7. NotificationManager getActiveNotifications() per dispositivi precedenti
- 8. per loop con intervallo in CoffeeScript
- 9. Intervallo di confidenza per LOWESS in Python
- 10. Filtra per intervallo di date in SPARQL
- 11. Lettore RFID per dispositivi mobili
- 12. OAuth2 Flow per dispositivi mobili
- 13. Ricerca Android per dispositivi Bluetooth
- 14. Raggruppa per intervallo utilizzando linq
- 15. Intervallo PHP per alfabeti ebraici
- 16. VBA: selezione intervallo per variabili
- 17. Gruppo per intervallo di date settimane/mesi intervallo
- 18. Algoritmo per mappare un intervallo ad un intervallo più piccolo
- 19. loop basato su intervallo C++ 11 per intervallo (L, R)
- 20. Intervallo doppio intervallo tempo standard
- 21. Fornire riferimento/guida per creare un'applicazione Web per la gestione di tutti i dispositivi/dispositivi IT
- 22. Logcat per più dispositivi in esecuzione contemporaneamente in Android Studio?
- 23. Produttore/consumatore per parlare seriamente ai dispositivi
- 24. Operatori Web nei browser per dispositivi mobili
- 25. API Android per comunicazioni tra dispositivi
- 26. Supporto per dispositivi compatibili con Mocha
- 27. Responsive design per tutti i dispositivi Android
- 28. strumento di visualizzazione per dispositivi mobili (tablet)
- 29. Modifica dell'albero dei dispositivi per Beaglebone Black
- 30. Ottimizza sito Web per dispositivi touch
Cosa succede se il telefono è GSM. La variabile "signalStrengthValue" è il valore dBm. Come calcolare il valore ECIO? – MCGBra