Quelques personnes au cours de la dernière décennie ont posé des questions similaires, mais aucune n'a de réponses. J'ai besoin d'écrire une application Android qui recueille et stocke RSRP, RSRQ, CINR et ID de cellule. Les réponses doivent être aussi précises que le matériel du téléphone le permet (je suis en train de tester sur Samsung Galaxy S5) car j'ai besoin de faire des statistiques de post traitement avec ces valeurs.Get RSRP from CellSignalStrengthLte pour l'application Android API 17+
Est-ce que quelqu'un sait comment utiliser telephonyManager ou CellSignalStrengthLte pour obtenir RSRP? Ou y a-t-il une autre, peut-être une meilleure façon d'obtenir le RSRP?
Jusqu'à présent, le meilleur que je suis en mesure de faire est d'utiliser un PhoneStateListener et TelephonyManager pour obtenir les valeurs de RSSI, mais RSSI est inutile pour mes statistiques:
package com.pscr.jparks.signalstrength;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.widget.TextView;
/*
TS 27.007 8.5
Defined values
<rssi>:
0 -113 dBm or less
1 -111 dBm
2...30 -109... -53 dBm
31 -51 dBm or greater
99 not known or not detectable
*/
public class SignalStrengthActivity extends Activity {
SignalStrengthListener signalStrengthListener;
TextView signalStrengthTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setup content stuff
this.setContentView(R.layout.signal_strength);
signalStrengthTextView = (TextView) findViewById(R.id.signalStrengthTextView);
//start the signal strength listener
signalStrengthListener = new SignalStrengthListener();
((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).listen(signalStrengthListener, SignalStrengthListener.LISTEN_SIGNAL_STRENGTHS);
}
private class SignalStrengthListener extends PhoneStateListener {
@Override
public void onSignalStrengthsChanged(android.telephony.SignalStrength signalStrength) {
// get the signal strength (a value between 0 and 31)
int strengthAmplitude = signalStrength.getGsmSignalStrength();
//do something with it (in this case we update a text view)
signalStrengthTextView.setText(String.valueOf(strengthAmplitude));
super.onSignalStrengthsChanged(signalStrength);
}
}
}
Si quelqu'un a résolu ce problème, ou trouvé une réponse (j'ai regardé partout!), s'il vous plaît faites le moi savoir!
Génial! Merci pour la réponse, jusqu'à présent cela semble être juste ce dont j'avais besoin. Il y a une petite faute de frappe: missing() à la fin de getCellSignalStrength => getCellSignalStrength(). Merci encore! – JParks
Je suis content de voir que le code peut résoudre votre problème, et j'ajoute "()" à la réponse d'origine. :) –
Voici ma solution avec le code fourni par Bruce Lan posté sur mon compte GitHub: https://github.com/parksjg/SignalStrength/tree/master – JParks