Couldn't listen to Android manager status in wi-fi?

I'm having problems with the BroadCast receiver to check the status of Wi-Fi. Could you help me?

This is my manifest file.

<uses-permission android:name="android.permission.READ_PHONE_STATE"> </uses-permission>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"> </uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"> </uses-permission>
<uses-permission android:name="android.permission.INTERNET"> </uses-permission>
<application 
        android:icon="@drawable/icon" 
        android:label="@string/app_name">
    <activity 
        android:name=".MainActivity"
            android:label="@string/app_name">
    <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
           <receiver android:name=".MainActivity">
<intent-filter android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
       </receiver>  
   </application>
</manifest>

And this is MainActivity.java

public class MainActivity extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        int state = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, -1);
        String msg = null;
        switch (state) {
        case WifiManager.WIFI_STATE_DISABLED:
            msg = "it is disabled";
            break;
        case WifiManager.WIFI_STATE_ENABLED:
            msg = "it is enabled";
            break;
        case WifiManager.WIFI_STATE_DISABLING:
            msg = "it is switching off";
            break;
        case WifiManager.WIFI_STATE_ENABLING:
            msg = "wifi is getting enabled";
            break;
        default:
            msg = "not working properly";
            break;
        }
        if (msg != null) {
            Log.d("************%%%%%%%%wifi state ", "WIFI" + msg);
            Toast.makeText(context, "Wifi state is" + msg, Toast.LENGTH_LONG)
                    .show();
        }
    }
}

I am not sure where I am making my mistake. Any input would be appreciated. I do not get any errors only in the fact that the requested message is not displayed in the log file.

+5
source share
6 answers

You have not added an intent filter parameter, the last manifest should look like this:

<uses-permission android:name="android.permission.READ_PHONE_STATE"> </uses-permission>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"> </uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"> </uses-permission>
<uses-permission android:name="android.permission.INTERNET"> </uses-permission>
<application 
            android:icon="@drawable/icon" 
            android:label="@string/app_name">
<activity 
            android:name=".MainActivity"
            android:label="@string/app_name">
<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    <receiver android:name=".MainActivity">
    <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" /> 
            <action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
    </intent-filter>
    </receiver>
</application>

Hope this helps.

+8
source

If you have not added the following permissions, try again after adding.

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
+3
source

, WIFI. , .

-, , BroadcastReceiver. manifest.xml MainActivity.

<activity 
        android:name=".MainActivity"
            android:label="@string/app_name">
    <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

MainActivy - Activity. , MainActivity broadcastReceiver. . . :

           <receiver android:name=".WifiBroadcastReceiver">
<intent-filter> 
     <action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
</intent-filter>
       </receiver>  

, broadcastReceiver node, <action> node, .

-, WifiBroadcastReceiver.java MainActivity.java. public class WifiBroadcastReceiver extends BroadcastReceiver

, . , , . ; , t .

, MainActivity.java. Eclipse. : public class MainActivity extends Activity.

+2

, .

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+1

AndroidManifiest.xml . , .

registerReceiver , :) WifiStateTester - , BroadcastReceiver.

 WifiStateTester wfs= new WifiStateTester();
 IntentFilter iFilter= new IntentFilter();
 iFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
 iFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
 this.registerReceiver(wfs, iFilter);

, , , onReceiver wifi.

0

, , , WIFI NETWORK ( , ):

WifiMonitor.java

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.wifi.WifiManager;
import android.util.Log;

public class WifiMonitor extends BroadcastReceiver {
    private String TAG = "TGtracker";

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.e(TAG,"entered  wifimonitor");
         // Process the Intent here
        WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        if (wifi.isWifiEnabled()==true) {
          Log.d(TAG, "You are connected to WIFI "+wifi.getConnectionInfo());
        } else {
          Log.e(TAG,"You are NOT connected to WIFI");
        }
    }
}

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

, , </application> ( )

<application...
    <receiver android:name=".WifiMonitor" android:enabled="true">
        <intent-filter>
            <action android:name="android.net.ConnectivityManager.CONNECTIVITY_ACTION" />
            <action android:name="android.net.wifi.STATE_CHANGE" />
            <action android:name="android.net.wifi.supplicant.CONNECTION_CHANGE" />
        </intent-filter>
    </receiver>
</application>

, < ... </application> ( , , ).

. , MainActivity, , BroadcastReceiver.

0

All Articles