我正在尝试检查可用的互联网连接,我发现很多主题都在谈论这个问题,但是当我尝试验证互联网连接时,我仍然遇到问题,我正在使用的代码是流动的:
public boolean isOnline() {
ConnectivityManager conMgr =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable() && conMgr.getActiveNetworkInfo().isConnected()) {
return true;
} else {
return false;
}
}
请问如何帮助我? PS:抱歉我的英语不好。
答案 0 :(得分:4)
你的方法是正确的。您还需要在您的Android清单文件中:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
但请记住,低信号,服务器停机,强制网络门户,内容过滤器,其他网络问题可能会阻止您的应用程序到达服务器。因此,拥有有效的网络接口并不能保证特定的网络服务可用。
答案 1 :(得分:0)
在此代码中,您在私有var:
中具有红色状态 private boolean mIsConnected;
@Override
protected void onResume()
{
super.onResume();
//red status broadcast
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(mNetworkStateReceiver, filter);
}
private BroadcastReceiver mNetworkStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
NetworkInfo networkInfo =
(NetworkInfo)intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
mIsConnected= networkInfo.isConnected();
Log.i("TAG", String.format("Status red: %b", mIsConnected))
}
};