I’m just trying to write a simple Android app that programatically shows whether the WiFi is enabled or disabled. I’m unable to get it to print the Wifi status. I’m pretty sure that my code is 99% correct, but that’s no better than being 0% correct.
My code is below.
package com.jasonhsu.wifitest;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends Activity {
private LinearLayout ShowWifiStatus;
TextView TextWifiStatus;
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ShowWifiStatus = new LinearLayout (this);
TextView TextWifiStatus = new TextView (this);
TextWifiStatus.setText("Sorry, your Wifi status program isn't working.");
this.registerReceiver(this.WifiStateChangedReceiver, new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION));
ShowWifiStatus.addView(TextWifiStatus);
setContentView(ShowWifiStatus);
}
private BroadcastReceiver WifiStateChangedReceiver
= new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
int extraWifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE ,
WifiManager.WIFI_STATE_UNKNOWN);
switch(extraWifiState){
case WifiManager.WIFI_STATE_DISABLED:
TextWifiStatus.setText("WIFI STATE DISABLED");
break;
case WifiManager.WIFI_STATE_DISABLING:
TextWifiStatus.setText("WIFI STATE DISABLING");
break;
case WifiManager.WIFI_STATE_ENABLED:
TextWifiStatus.setText("WIFI STATE ENABLED");
break;
case WifiManager.WIFI_STATE_ENABLING:
TextWifiStatus.setText("WIFI STATE ENABLING");
break;
case WifiManager.WIFI_STATE_UNKNOWN:
TextWifiStatus.setText("WIFI STATE UNKNOWN");
break;
}
}};
}
Remove the first “TextView” from the following statement so that you assign the new TextView object to the member variable TextWifiStatus instead of a local variable with the same name.
Regards
Ziteng Chen