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