Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中运行应用程序时检查网络状态_Android_Connectivity - Fatal编程技术网

在android中运行应用程序时检查网络状态

在android中运行应用程序时检查网络状态,android,connectivity,Android,Connectivity,我正在使用一些url流式传输视频。在这里,当我启动应用程序时,我检查了网络状态,或者当我进入onResume状态时,我检查了网络状态。但是,在播放流媒体时,如果有任何原因,网络将失败。。如何检查网络的状态。 在这里,我使用此代码检查状态 public static boolean isOnline(Context context) { boolean state = false; ConnectivityManager cm = (ConnectivityManager)

我正在使用一些url流式传输视频。在这里,当我启动应用程序时,我检查了网络状态,或者当我进入onResume状态时,我检查了网络状态。但是,在播放流媒体时,如果有任何原因,网络将失败。。如何检查网络的状态。 在这里,我使用此代码检查状态

public static boolean isOnline(Context context) {
    boolean state = false;
    ConnectivityManager cm = (ConnectivityManager)
    context.getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo wifiNetwork =
        cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if (wifiNetwork != null) {
                state=wifiNetwork.isConnectedOrConnecting();
             }

        NetworkInfo mobileNetwork =
        cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        if (mobileNetwork != null) {
            state=mobileNetwork.isConnectedOrConnecting();
        }

        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (activeNetwork != null) {
            state=activeNetwork.isConnectedOrConnecting();
        }

        return state;
  } 
从oncreate和orResume方法中,我调用了这个方法。。但是,我如何在运行应用程序时找到网络的状态


提前感谢…

您可以在
活动
中注册一个
广播接收器
,该接收器将接收连接更改广播。因此,在连接发生变化时将触发的
onReceive()
方法中,您必须采取以下措施:

    BroadcastReceiver mNetworkReceiver=new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            //take actions
        }
    };
    registerReceiver(mNetworkReceiver,
        new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"));
您还需要向清单中添加以下权限:

<uses-permission
    android:name="android.permission.ACCESS_NETWORK_STATE" />

您可以在
活动
中注册一个将接收连接更改广播的
广播接收器
。因此,在连接发生变化时将触发的
onReceive()
方法中,您必须采取以下措施:

    BroadcastReceiver mNetworkReceiver=new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            //take actions
        }
    };
    registerReceiver(mNetworkReceiver,
        new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"));
您还需要向清单中添加以下权限:

<uses-permission
    android:name="android.permission.ACCESS_NETWORK_STATE" />