Estoy comprobando la intensidad de la señal para dispositivos CDMA. ¿Alguien puede especificar el rango signalStrength.getCdmaDbm()
devuelve ?. El valor más bajo es -120 pero para la potencia de la señal completa, ¿cuál es el valor? Lo más que tengo es -52.Rango para la señalFuerza en dbm para dispositivos CDMA
10
A
Respuesta
16
Bueno, no estoy seguro de si esto es lo que estás buscando, pero después de echar un vistazo al archivo SignalStrength.java en la fuente de Android noté un código que tiene un montón de niveles para cdma dbm y 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
y el nivel es la más baja de las dos
actualLevel = (levelDbm < levelEcio) ? levelDbm : levelEcio;
pero me di cuenta que esto no se corresponde con las barras reales que muestran en la notificación. Si está en 3G, este nivel se ignora y se usa la relación señal/ruido.
signalStrength.getEvdoSnr() // value is 0 to 8 so divide by two to get the bars
si los datos se reducen de 3G a 1x y luego utilizan el actualLevel.
Este fue mi código para encontrar mostrar el número de barras.
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);
}
}
en el uso del método de crear esta abajo, y también asegurarse de manifiesto utiliza READ_PHONE_STATE.
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
AndroidPhoneStateListener phoneStateListener = new AndroidPhoneStateListener(text);
telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
Cuestiones relacionadas
- 1. objeto temporal en rango para
- 2. Usa la fuente Roboto para dispositivos anteriores
- 3. ¿Cómo encontrar los dispositivos en el rango usando bluetooth?
- 4. Envío de datos SMS en Android en un teléfono CDMA
- 5. ¿Rango válido para java.util.Date?
- 6. OpenGL (para dispositivos móviles) Tutoriales para principiantes
- 7. Backbone.js adecuado para dispositivos móviles?
- 8. Android ¿Cómo identificar el operador en la red CDMA?
- 9. Frameworks CSS para dispositivos móviles?
- 10. Códec compatible para dispositivos Android
- 11. basado en rango para en C++ 11
- 12. C++ Consejos para la optimización de código en dispositivos ARM
- 13. ¿Cómo configurar la aplicación iOS para trabajar en dispositivos específicos?
- 14. Categorías en la biblioteca estática para dispositivos iPhone 3.0
- 15. Rango de valores para GetMaxAmplitude
- 16. Proporcione una referencia/guía para crear una aplicación web para administrar todos los dispositivos/dispositivos informáticos
- 17. Cómo verificar la red de iPhone tipo GSM o CDMA
- 18. Rango PHP para alfabetos hebreos
- 19. Android API para comunicación entre dispositivos
- 20. ¿Cómo compilar JavaScriptCore para dispositivos con iOS?
- 21. Resolución de pantalla mínima para dispositivos Android
- 22. herramienta de visualización para dispositivos móviles (tableta)
- 23. Java sound api - Escaneo para dispositivos midi
- 24. Cómo probar el webkit para dispositivos móviles
- 25. Use RegisterDeviceNotification() para TODOS los dispositivos USB
- 26. Selector de tiempo para dispositivos móviles
- 27. ¿Crees un identificador único para dispositivos iOS?
- 28. Programación de sitios web para dispositivos móviles
- 29. Cargando la secuencia de comandos JS solo para dispositivos iOS?
- 30. ¿Es bueno MVC para dispositivos móviles?
¿Qué pasa si el teléfono es GSM. La variable "signalStrengthValue" es el valor de dBm. ¿Cómo calcular el valor de ECIO? – MCGBra