0

WiFiが有効か無効かをプログラムで表示する単純なAndroidアプリを作成しようとしています。Wifi ステータスを印刷することができません。私のコードは 99% 正しいと確信していますが、それは 0% 正しいことに勝るものはありません。

私のコードは以下です。

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;
            }

        }};

}
4

1 に答える 1

2

次のステートメントから最初の "TextView" を削除して、同じ名前のローカル変数ではなく、新しい TextView オブジェクトをメンバー変数 TextWifiStatus に割り当てるようにします。

TextView TextWifiStatus = new TextView (this);

よろしく

陳子騰

于 2012-08-24T02:31:03.313 に答える