Я хочу знать силу сигнала моей текущей башни ячеек на Android. После некоторых исследований, которые я нашел, я должен использовать PhoneStateListener
, которые прослушивают обновление, чтобы получить значение (странный способ сделать это IMHO).Остановить прослушиватель после первого обновления
Поэтому я хочу получить сигнал, как только я его получу, и остановить слушателя. Это код я использую:
// object containing the information about the cell
MyGSMCell myGSMCell = new MyGSMCell(cid,lac);
// object listening for the signal strength
new GetGsmSignalStrength(myGSMCell, context);
...
public class GetGsmSignalStrength {
private MyGSMCell callback;
private TelephonyManager telMan;
private MyPhoneStateListener myListener;
public GetGsmSignalStrength(MyGSMCell callback, Context context) {
this.callback = callback;
this.myListener = new MyPhoneStateListener();
this.telMan = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
this.telMan.listen(this.myListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}
private class MyPhoneStateListener extends PhoneStateListener
{
public void onSignalStrengthsChanged(SignalStrength signalStrength)
{
// get the strength
super.onSignalStrengthsChanged(signalStrength);
// return it to the MyGSMCell object to set the value
callback.setStrength(signalStrength.getGsmSignalStrength());
}
}
}
Я хотел бы остановить слушателя, как только я посылаю setStrength(value)
Любая идея?
Спасибо
работает хорошо, спасибо –