55 lines
2.1 KiB
Java
55 lines
2.1 KiB
Java
package com.mogo.cloud.wifi;
|
||
|
||
import android.content.BroadcastReceiver;
|
||
import android.content.Context;
|
||
import android.content.Intent;
|
||
import android.net.wifi.WifiInfo;
|
||
import android.net.wifi.WifiManager;
|
||
|
||
import com.mogo.cloud.utils.logger.Logger;
|
||
|
||
public class WifiBroadCastReceiver extends BroadcastReceiver {
|
||
|
||
private WifiBroadCastReceiver() {
|
||
Logger.d(TAG, "WifiBroadCastReceiver init");
|
||
}
|
||
|
||
private static final String TAG = "WifiBroadCastReceiver";
|
||
|
||
@Override
|
||
public void onReceive(Context context, Intent intent) {
|
||
Logger.d(TAG, "onReceive 接收intent action : " + intent.getAction());
|
||
int wifiState = intent.getIntExtra("wifi_state", 0);
|
||
WifiManager wifiManager = ((WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE));
|
||
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
|
||
if (wifiInfo != null) {
|
||
Logger.d(TAG, "onReceive wifiInfo, update wifiState");
|
||
WifiStateManager.getInstance().updateWifiState(wifiInfo);
|
||
|
||
int linkSpeed = wifiInfo.getLinkSpeed();
|
||
Logger.d(TAG, "wifi linkSpeed : " + linkSpeed); //wifi连接速度
|
||
//0到-50表示信号最好,-50到-70表示信号偏差,小于-70表示最差,有可能连接不上或者掉线
|
||
int level = Math.abs(wifiInfo.getRssi());
|
||
Logger.d(TAG, "wifi level : " + level); //wifi信号强度
|
||
|
||
switch (wifiState) {
|
||
case WifiManager.WIFI_STATE_DISABLING:
|
||
Logger.d(TAG, "WIFI State : DISABLING");
|
||
break;
|
||
case WifiManager.WIFI_STATE_DISABLED:
|
||
Logger.d(TAG, "WIFI State : DISABLED");
|
||
break;
|
||
case WifiManager.WIFI_STATE_ENABLING:
|
||
Logger.d(TAG, "WIFI State : ENABLING");
|
||
break;
|
||
case WifiManager.WIFI_STATE_ENABLED:
|
||
Logger.d(TAG, "WIFI State : ENABLED");
|
||
break;
|
||
case WifiManager.WIFI_STATE_UNKNOWN:
|
||
Logger.d(TAG, "WIFI State : UNKNOWN");
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|