判斷一個wifi熱點是否連線成功
阿新 • • 發佈:2019-02-07
判斷Wifi是否連線成功,很簡單(需要用到廣播),
傳送一個廣播,filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
接收廣播
if(intent.getAction().equals("android.net.conn.CONNECTIVITY_CHANGE")){
WifiSupport.getList(getContext(), list , -1);;//獲取資料
adapter.notifyDataSetChanged();
if(WifiSupport.isWifiContected (getContext()) == 1){
Toast.makeText(getContext(), "連線成功" + netConnectingid, Toast.LENGTH_SHORT).show();
}else if(WifiSupport.isWifiContected(getContext()) == 2){
Toast.makeText(getContext(), "正在連線中" + netConnectingid, Toast.LENGTH_SHORT).show ();
}else{
Toast.makeText(getContext(), "網路變化了3", Toast.LENGTH_SHORT).show();
}
}
下面是判斷是否連線
public static final int WIFI_CONNECTED = 0x01;
public static final int WIFI_CONNECT_FAILED = 0x02;
public static final int WIFI_CONNECTING = 0x03 ;
/**
* 判斷wifi是否連線成功,不是network
*
* @param context
* @return
*/
public static int isWifiContected(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiNetworkInfo = connectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
Log.v(TAG, "isConnectedOrConnecting = " + wifiNetworkInfo.isConnectedOrConnecting());
Log.d(TAG, "wifiNetworkInfo.getDetailedState() = " + wifiNetworkInfo.getDetailedState());
if (wifiNetworkInfo.getDetailedState() == NetworkInfo.DetailedState.OBTAINING_IPADDR
|| wifiNetworkInfo.getDetailedState() == NetworkInfo.DetailedState.CONNECTING) {
return WIFI_CONNECTING;
} else if (wifiNetworkInfo.getDetailedState() == NetworkInfo.DetailedState.CONNECTED) {
return WIFI_CONNECTED;
} else {
Log.d(TAG, "getDetailedState() == " + wifiNetworkInfo.getDetailedState());
return WIFI_CONNECT_FAILED;
}
}
至此大功告成,文章如有錯誤 歡迎各位指點