Hi TAO,

Have you figured this out? I'm having the exact same problem.

I've tested my app on G1 (1.5), Nexus One (2.1), Droid (2.1), and EVO
(2.1).

The new API  onSignalStrengthsChanged(SignalStrength signalStrength)
never got called on all 2.1 devices. But the funny part is the old API
onSignalStrengthChanged(int asu) worked correctly on Nexus One, but
not on Droid or EVO.

Please let me know if you are able to fix this problem.

Thanks.

Mac

On Jul 3, 12:12 pm, TheArchedOne <thearched...@gmail.com> wrote:
> I have written an android app which listens to the phone signal
> strength. The app works perfectly with Android 1.6 and lower using
> PhoneStateListener.SignalStrengthChanged(int asu), but I can't get it
> to work on Android 2.1.
>
> I know that I have to use onSignalStrengthsChanged(SignalStrength
> signalStrength) but this override never seems to be called in my code.
> SignalStrengthChanged(int asu) is called, but this always returns a
> signal strength of -1 asu because its been depecated. I need to get
> the onSignalStrengthsChanged(SignalStrength signalStrength) to
> work.... does anyone know what I'm doing wrong?
>
> I'm testing on a EVO with Android 2.1. The phone type
> (TelephonyManager.getPhoneType) is CDMA and
> TelephonyManager.getNetworkType returns "EVDO_A".
>
> Here's the code:
>
> mSignalListener = new PhoneStateListener(){
>   @Override
>     public void onSignalStrengthChanged(int asu){
>       Log.d(Utils.LOGTAG, "#1. " + String.valueOf(asu));
>       if (mStrength != asu){
>         mStrength = asu;
>         NotifyUI();
>       }
>       super.onSignalStrengthChanged(asu);
>     }
>
>   @Override
>   public void onSignalStrengthsChanged(SignalStrength signalStrength)
> {
>     Log.d(Utils.LOGTAG, "#2.");  // this never gets called
>
>     if (signalStrength.isGsm())
>       mStrength = signalStrength.getGsmSignalStrength();
>     else{
>       int strength = -1;
>       if (signalStrength.getEvdoDbm() < 0)
>         strength = signalStrength.getEvdoDbm();
>       else if (signalStrength.getCdmaDbm() < 0)
>         strength = signalStrength.getCdmaDbm();
>
>       if (strength < 0){
>         // convert to asu
>         mStrength = Math.round((strength + 113f) / 2f);
>       }
>
>       NotifyUI();
>     }
>     super.onSignalStrengthsChanged(signalStrength);
>   }
>
> };
>
> mTelManager =
> (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
> mTelManager.listen(mSignalListener,
> PhoneStateListener.LISTEN_SIGNAL_STRENGTH);
>
> Thanks in advance
>
> TAO

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to