WifiReciever.java
3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package com.sw.laryngoscope.wifi;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import com.sw.laryngoscope.common.Constant;
import com.sw.laryngoscope.utils.Logger;
public class WifiReciever extends BroadcastReceiver {
private static final String WIFI_STATE_CHANGE = "android.net.wifi.WIFI_STATE_CHANGED";//wifi开关变化
private static final String WIFI_SCAN_RESULT = "android.net.wifi.SCAN_RESULTS";//扫描结果变化
private static final String WIFI_LINK_RESULT = "android.net.wifi.STATE_CHANGE";//连接结果通知
private static final String NETWORK_STATE_CHANGE = "android.net.conn.CONNECTIVITY_CHANGE";//网络变化
private static final String WIFI_GET_IDADDRESS = "android.net.wifi.supplicant.STATE_CHANGE";//是否正在获得IP地址
private static final String WIFI_POWER_CHANGE = "android.net.wifi.RSSI_CHANGED";//wifi强度变化
private ConnectivityManager connectivityManager;
private NetworkInfo info;
public void onReceive(Context context, Intent intent) {
NetworkInfo mNetInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if ( intent.getAction().equals("android.net.wifi.STATE_CHANGE") ) {
if (mNetInfo.getState().equals(NetworkInfo.State.DISCONNECTED)) {
Logger.e("WifiReciever NETWORK_STATE_CHANGED_ACTION wifi 网络连接断开");
Constant.isWifiOk = false;
}
if ( intent.getAction().equals("android.net.wifi.supplicant.STATE_CHANGE") ) {
Logger.e("WifiReciever SUPPLICANT_STATE_CHANGED_ACTION");
if (intent.getIntExtra("supplicantError", 123) == 1) {
Logger.e("密码错误");
}
}
if ( mNetInfo.getState().equals(NetworkInfo.State.CONNECTED) ) {
WifiInfo localWifiInfo = ((WifiManager)context.getSystemService(Context.WIFI_SERVICE)).getConnectionInfo();
Logger.e("WifiReciever NETWORK_STATE_CHANGED_ACTION 连接网络 NetworkInfo.State.CONNECTED= " + localWifiInfo.getSSID());
if ( localWifiInfo.getSSID().equals("<unknown ssid>") ) {
Constant.isWifiOk = false;
} else {
//Constant.isWifiOk = true;
}
}
} else if ( intent.getAction().equals("android.net.wifi.WIFI_STATE_CHANGED") ) {
int i = intent.getIntExtra("wifi_state", 1);
Logger.e("WifiReciever WIFI_STATE_CHANGED_ACTION " + i);
if ( i == 1 ) {
Constant.isWifiOk = false;
}
} else if ( ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction()) ) {
connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
info = connectivityManager.getActiveNetworkInfo();
if ( info != null && info.isAvailable() ) {
Constant.isWifiOk = true;
Logger.d("WifiReciever", "-------------H--------");
}
}
}
}