实现步骤:
1、获取ConnectivityManager对象
Context context = activity.getApplicationContext();
//获取手机所有链接管理对象(包括对Wi-Fi,net等连接的管理)
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
2、获取NetworkInfo对象
//获取NetworkInfo对象
NetworkInfo[] info = manager.getAllNetworkInfo();
3、判断当前网络状态是否为连接状态
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
4、在AndroidManifest.xml中添加访问当前网络状态权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
完整代码:
public class MyFragment extends Fragment {
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (checkNetworkAvailable(getActivity())) {
//有网络
Toast.makeText(getContext(), "有网络!", Toast.LENGTH_SHORT).show();
} else {
//有网络
Toast.makeText(getContext(), "无网络!", Toast.LENGTH_SHORT).show();
}
}
//判断网络连接是否可用(返回true表示网络可用,false为不可用)
public boolean checkNetworkAvailable(Activity activity) {
Context context = activity.getApplicationContext();
//获取手机所有链接管理对象(包括对Wi-Fi,net等连接的管理)
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (manager == null) {
return false;
} else {
//获取NetworkInfo对象
NetworkInfo[] info = manager.getAllNetworkInfo();
if (info != null && info.length > 0) {
for (int i = 0; i < info.length; i++) {
System.out.println(i + "状态" + info[i].getState());
System.out.println(i + "类型" + info[i].getTypeName());
// 判断当前网络状态是否为连接状态
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
}