Android互联网连接检查

时间:2012-05-06 18:32:05

标签: android connection

我正在尝试检查可用的互联网连接,我发现很多主题都在谈论这个问题,但是当我尝试验证互联网连接时,我仍然遇到问题,我正在使用的代码是流动的:

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:抱歉我的英语不好。

2 个答案:

答案 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))

        }
    };