1

WiFiがオンの場合、ブール値をtrueに設定しようとしています。ブロードキャスト レシーバーの実装を通じて接続状態を取得しています。ただし、ブール値が複数回 true に設定されています。これで私を助けてもらえますか?? WiFiが接続されている場合にのみブール値をtrueに設定し、WiFiが切断されている場合にのみfalseに設定する必要があります。コードは次のとおりです。

NetworkInfo info = (NetworkInfo) ((ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE))
                .getActiveNetworkInfo();
        if (info != null) {
            Log.d("wifiRun", "Network available");
            ConnectivityManager conMan = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo.State wifi = null;
            if (conMan.getNetworkInfo(1).isAvailable())
                wifi = conMan.getNetworkInfo(1).getState();
            if (wifi == NetworkInfo.State.CONNECTED) {
                    //|| wifi == NetworkInfo.State.CONNECTING) {
                wifiState = true;
                Log.d("wifiRun", "wifiState: " + wifiState);

            } else {
                wifiState = false;
                Log.d("wifiRun", "wifiState: " + wifiState);
            }
        }

マニフェスト:

<receiver android:name="com.aws.BatteryUsage.ServiceDefinition">
<intent-filter>
          <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
     </intent-filter>
        </receiver>
4

2 に答える 2

4

この方法を見てください。これにより、デバイスが接続されているネットワーク名が返されます。デバイスがどこにも接続されていない場合は、「none」が返されます。必要に応じて、文字列名をブール値の isConnected に変更するのは非常に簡単です。

public String getWifiName(Context context) {
    String ssid = "none";
    WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    WifiInfo wifiInfo = wifiManager.getConnectionInfo();
    if (WifiInfo.getDetailedStateOf(wifiInfo.getSupplicantState()) == NetworkInfo.DetailedState.CONNECTED) {
        ssid = wifiInfo.getSSID();
    }
    return ssid;
}

これには、 AndroidManifest.xmlで次の権限が必要です。

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

それはうまくいくはずです。ただし、この方法の詳細が必要な場合は、これをお読みください

さらに、次の列挙型を調べることができます。

NetworkInfo.DetailedState

それらは、役に立つと思われる多くのさまざまな状態を示しています。

于 2013-06-29T08:12:30.333 に答える