Android静态注册广播receiver检测WIFI连接状况变化

简介: Android静态注册广播receiver检测WIFI连接状况变化在AndroidManifest.xml静态注册一个receiver,增加对WiFi状态变化时候Android系统发送的广播事件过滤器,从而达到监听、检测WiFi状态变化。


Android静态注册广播receiver检测WIFI连接状况变化

在AndroidManifest.xml静态注册一个receiver,增加对WiFi状态变化时候Android系统发送的广播事件过滤器,从而达到监听、检测WiFi状态变化。

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


完成相关广播接收器:

package zhangphil.wifi;

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

public class WIFIStateChangedBroadcastReceiver extends BroadcastReceiver {

	private final String tag = "WIFI链接状况";

	@Override
	public void onReceive(Context context, Intent intent) {

		if (intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
			NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
			if (info.getState().equals(NetworkInfo.State.CONNECTED)) {

				WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
				WifiInfo wifiInfo = wifiManager.getConnectionInfo();

				// 当前WIFI名称
				Log.d(tag, "连接到WIFI " + wifiInfo.getSSID());
			}
		}

		if (intent.getAction().equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
			int wifistate = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_DISABLED);

			if (wifistate == WifiManager.WIFI_STATE_DISABLED) {
				Log.d(tag, "WIFI关闭");
			}

			if (wifistate == WifiManager.WIFI_STATE_ENABLED) {
				Log.d(tag, "WIFI开启");
			}
		}
	}
}



增加权限:

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


附录相关文章:
【文章1】《Android判断设备是否打开WIFI、GPRS数据连接》链接地址:http://blog.csdn.net/zhangphil/article/details/43800909
【文章2】《Android检查设备是否联网》链接地址:http://blog.csdn.net/zhangphil/article/details/43795063


相关文章
|
1月前
|
Android开发
如何在Android真机上检测是否有Google Map add-on
如何在Android真机上检测是否有Google Map add-on
20 3
|
1月前
|
Android开发
Android 状态栏WiFi图标的显示逻辑
Android 状态栏WiFi图标的显示逻辑
46 0
|
6天前
|
网络协议
了解AT指令以及STM32F103如何通过ESP8266连接到WiFi
AT指令是一组用于控制调制解调器的命令,最早由Hayes公司为其智能调制解调器开发。如今,AT指令已被广泛应用于各种通信模块中,包括GSM、Bluetooth和WiFi模块。AT指令通常以“AT”开头,后跟特定的命令和参数。通过这些指令,我们可以执行一系列操作,如设置网络参数、发送数据和查询状态等。
16 0
|
14天前
|
数据安全/隐私保护 Windows
windows系统bat批处理 查看当前电脑连接过的wifi名字和wifi密码
windows系统bat批处理 查看当前电脑连接过的wifi名字和wifi密码
|
15天前
|
设计模式 Android开发
44. 【Android教程】广播接收器:Broadcast Receiver
44. 【Android教程】广播接收器:Broadcast Receiver
16 2
|
24天前
|
Shell 开发工具 Android开发
|
25天前
|
Android开发 数据安全/隐私保护 iOS开发
ios和安卓测试包发布网站http://fir.im的注册与常用功能
ios和安卓测试包发布网站http://fir.im的注册与常用功能
20 0
ios和安卓测试包发布网站http://fir.im的注册与常用功能
|
1月前
|
Android开发
Android获取当前连接的wifi名称
Android获取当前连接的wifi名称
34 6
|
1月前
|
Android开发
android检测网络连接是否存在(一)
android检测网络连接是否存在(一)
15 2
|
1月前
|
Android开发
android连接指定wifi
android连接指定wifi
22 0