1

少し問題があります.wifi トグルがあり、有効または無効にできます。私はトグル状態をsharedpreferencesで保存しており、onCreateで次のコードを書きました:

sPref  = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); // Inizializzo la sharedpreferences
    ToggleButton wifitoggle = (ToggleButton) findViewById(R.id.wifitoggle); 
    boolean togglewifi = sPref.getBoolean("KEY", false);   
        if (togglewifi || wifiManager.isWifiEnabled()) 
        {

            wifitoggle.setChecked(true);
        }
            else
        {
            wifitoggle.setChecked(false);
        }

状態は保存され、うまくいきますが、ご覧のとおり、wifiが有効になっているかどうかも確認しようとしています(たとえば、アプリケーションからではなく、Android wifi設定を介して有効にします)。今、設定で Wi-Fi を有効にしようとして、アプリケーションを開くと、Wi-Fi が有効になっていることが表示されません。if状態に何か問題がありますか? ありがとう。

4

3 に答える 3

2

ユーザーはいつでも Wifi の状態を変更でき、アプリケーションはコードでこれを認識できないため、これはすべての場合に機能するとは限りません。たとえば、togglewifi=true以前に状態をどこかに保存したためにボタンをチェック済みに設定しても、wifi が有効になっているわけではありません。TRUE || FALSE = TRUE排他的な or は、 andのように 2 番目の条件をチェックしませんTRUE || TRUE = TRUE。この場合の結果は、最初のパラメーターのみに依存します。if then else コンストラクトを修正します。

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
ToggleButton wifiToggle = (ToggleButton) findViewById(R.id.wifitoggle);
wifiToggle.setChecked(wifiManager.isWifiEnabled());
于 2013-11-12T08:34:24.070 に答える
0

以下は、wifiが有効になっているかどうかを確認するコードです:-

            boolean wifiEnabled = AndroidGPSTrackingActivity.wifiManager.isWifiEnabled();

wifiが有効になっている場合は、チェックしてください:-

// if WIFI Enabled get lat/long using WIFI Services
        if (wifiEnabled) {
            //do something
            Log.d("Network", "Network");
            }
        }
于 2013-11-12T09:41:27.803 に答える