2013-05-03 59 views
0

我已經寫了一個簡單的應用程序來獲取信號強度在Android ....但信號強度沒有得到顯示,當我嘗試顯示它在TextView中...請讓我知道什麼是問題。 (源代碼附在下面)在Android的SignalStrength沒有得到顯示

*public class SignalStrengthActivity extends Activity { 

    private int intSignalStrength; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_signal_strength); 
     ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
     //telephonyManager.listen(new MySignalStrengthlistner(), PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); 

     NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
     WifiManager wifiManager; 

     if(networkInfo.getType() == ConnectivityManager.TYPE_WIFI){ 
      wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
      Toast.makeText(getApplicationContext(), "Signal Strength Wifi: "+wifiManager.getConnectionInfo().getLinkSpeed(), Toast.LENGTH_LONG).show(); 
      //networkDetailsVO.setSignalStrength(wifiManager.getConnectionInfo().getLinkSpeed()); 
     }else if(networkInfo.getType() == ConnectivityManager.TYPE_MOBILE){ 
      telephonyManager.listen(new MySignalStrengthlistner(), PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); 
     } 

     TextView textView = (TextView) findViewById(R.id.signalStrength); 
     //Toast.makeText(getApplicationContext(), "Signal Strength Mobile: "+intSignalStrength, Toast.LENGTH_LONG).show(); 
     textView.setText(intSignalStrength); 

    } 



    private class MySignalStrengthlistner extends PhoneStateListener{ 


      @Override 
      public void onSignalStrengthsChanged(SignalStrength signalStrength) { 

       super.onSignalStrengthsChanged(signalStrength); 
       //Toast.makeText(getApplicationContext(), "Signal Strength Mobile: "+signalStrength.getGsmSignalStrength(), Toast.LENGTH_LONG).show(); 

       intSignalStrength = signalStrength.getGsmSignalStrength(); 
      } 

    } 
}* 





*<?xml version="1.0" encoding="utf-8"?> 
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.pervazive.fetchsignalstrength" 
     android:versionCode="1" 
     android:versionName="1.0" > 
     <uses-sdk 
      android:minSdkVersion="8" 
      android:targetSdkVersion="17" /> 
     <!-- <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> --> 
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

     <application 
      android:allowBackup="true" 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme" > 
      <activity 
       android:name="com.example.fetchsignalstrength.SignalStrengthActivity" 
       android:configChanges="orientation|keyboardHidden|screenSize" 
       android:label="@string/app_name" 
       android:theme="@style/FullscreenTheme" > 
       <intent-filter> 
        <action android:name="android.intent.action.MAIN" /> 
        <category android:name="android.intent.category.LAUNCHER" /> 
       </intent-filter> 
      </activity> 
     </application> 
    </manifest>* 

回答

0

嘗試把textView.setText(intSignalStrength)PhoneStateListener類的onSignalsChanged()方法中。我遇到了類似的問題,併爲我解決了這個問題。