85

Connectivity Manager クラスを使用して、wifi またはインターネット ネットワークにアクセスできます。

ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

// ARE WE CONNECTED TO THE NET
if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
  connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) {
  // ...
}

ここで0、 と1はそれぞれモバイル接続と Wi-Fi 接続を指します

私の Android デバイスが両方に接続されている場合、いずれかのネットワークを切り替えたり、いずれかのネットワークを無効にしたりできますか? 関数を使用するように:

connec.getNetworkInfo(0).setState(NetworkInfo.State.DISCONNECTED);
4

10 に答える 10

187

私はwifiを有効または無効にすることを知っています:

WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(status);

ステータスがどこにあるか、trueまたはfalse要件ごとに。

編集:

マニフェスト ファイルには、次のアクセス許可も必要です。

 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 
于 2010-10-14T07:45:34.603 に答える
30

WiFi を有効にするには:

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(true);

WiFi を無効にするには:

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(false);

注: WiFi 状態でアクセスするには、AndroidManifest.xml ファイル内に次のアクセス許可を追加する必要があります。

android.permission.ACCESS_WIFI_STATE
android.permission.UPDATE_DEVICE_STATS 
android.permission.CHANGE_WIFI_STATE
于 2012-09-10T05:07:47.057 に答える
13

完全な解決策:

try {
    WifiManager wifi = (WifiManager) 
        context.getSystemService(Context.WIFI_SERVICE);

    WifiConfiguration wc = new WifiConfiguration();
    wc.SSID = "\"SSIDName\"";
    wc.preSharedKey  = "\"password\"";
    wc.hiddenSSID = true;
    wc.status = WifiConfiguration.Status.ENABLED; 

    wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
    wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
    wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);

    wc.allowedPairwiseCiphers
        .set(WifiConfiguration.PairwiseCipher.TKIP);
    wc.allowedPairwiseCiphers
        .set(WifiConfiguration.PairwiseCipher.CCMP);
    wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);

    boolean b=wifi.isWifiEnabled();
    if (b) {
        wifi.setWifiEnabled(false);
        Toast.makeText(context, "yes", Toast.LENGTH_SHORT).show();
    } else {
        wifi.setWifiEnabled(true);
        Toast.makeText(context, "no", Toast.LENGTH_SHORT).show();
    }
    //Log.d("WifiPreference", "enableNetwork returned " + b );

} catch (Exception e) {
    e.printStackTrace();
}

参照: http://amitkumar-android.blogspot.com/p/installation-steps.html

于 2011-01-05T19:57:53.240 に答える
4

Wifi の無効化を有効にするには、WifiManagerクラスを使用して、Wifi のシステム (Android デバイス) サービスを取得します。

WifiManager wifi =(WifiManager)getSystemService(Context.WIFI_SERVICE); 

クラスのオブジェクトwifiWifiManager使用して、wifi ステータスを取得します。

if(wifi.isWifiEnabled())
    //Perform Operation
else
    //Other Operation

最も重要なことは、Android マニフェスト ファイルで次のアクセス許可を付与することを忘れないことです。

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

Android で Wifi を有効/無効にするためのプロジェクトの詳細情報と完全なサンプル コードを取得するには、私の Web サイト リンク にアクセスしてください。

于 2012-06-14T21:04:25.653 に答える
1

このアクセス許可をマニフェストに追加し、上記のコードを使用して WiFi 状態を変更します。

 <!--permission ge enable and disable WIFI in android-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
于 2012-05-18T07:29:25.543 に答える