我正在使用一些网址来播放视频。在这里,当我启动应用程序时,我检查了网络状态,或者当我进入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方法,我正在调用这个方法..但是如何在运行应用程序时找到网络的状态。
提前致谢...
答案 0 :(得分:3)
您可以在BroadcastReceiver
内注册一个Activity
,它将接收连接更改广播。因此,在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" />