1

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

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

4

2 回答 2

4

你的方法是正确的。您还需要在您的 android 清单文件中:

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

但请记住,低信号、服务器停机、强制门户、内容过滤器和其他网络问题可能会阻止您的应用程序到达服务器。因此,拥有一个活动的网络接口并不能保证特定的网络服务可用。

于 2012-05-06T18:37:14.987 回答
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))

        }
    };
于 2012-05-06T18:56:47.280 回答