android 监听wifi状态
时间: 2023-06-30 15:24:42 浏览: 62
要监听 Android 设备的 WiFi 状态,可以使用以下代码:
首先,在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
```
然后,在你的 Activity 或 Service 中创建一个 BroadcastReceiver,并在其中处理 WiFi 状态变化的逻辑。示例代码如下:
```java
public class WifiBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action != null && action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN);
switch (wifiState) {
case WifiManager.WIFI_STATE_ENABLED:
// WiFi 已经打开
break;
case WifiManager.WIFI_STATE_DISABLED:
// WiFi 已经关闭
break;
case WifiManager.WIFI_STATE_UNKNOWN:
// WiFi 状态未知
break;
}
}
}
}
```
最后,在你的 Activity 或 Service 中注册 BroadcastReceiver。示例代码如下:
```java
public class MainActivity extends AppCompatActivity {
private WifiBroadcastReceiver wifiBroadcastReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wifiBroadcastReceiver = new WifiBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION);
registerReceiver(wifiBroadcastReceiver, intentFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(wifiBroadcastReceiver);
}
}
```
这样,当 WiFi 状态发生变化时,就会触发 BroadcastReceiver 中的 onReceive() 方法,你就可以在其中处理相应的逻辑了。