2013-05-03 2 views
0

Я написал простое приложение для извлечения мощности сигнала в android .... но уровень сигнала не отображается, когда я пытаюсь отобразить его в TextView ... пожалуйста, позвольте мне знаете, в чем проблема. (исходный код прилагается ниже)SignalStrength in android не отображается.

*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) в onSignalsChanged() способе PhoneStateListener класса. Я столкнулся с подобной проблемой, и это решило это для меня.

Смежные вопросы