Android 安卓互联网连接检查

Android 安卓互联网连接检查,android,connection,Android,Connection,我正在尝试检查可用的internet连接,我发现许多主题都在谈论这一点,但当我尝试验证internet连接时,我仍然存在一个问题,我使用的代码是: 公共布尔等值线{ 连接管理器conMgr= ConnectionManager getSystemServiceContext.CONNECTIVITY\u服务; 如果conMgr.getActiveNetworkInfo!=null&&conMgr.getActiveNetworkInfo.isAvailable&&conMgr.getActive

我正在尝试检查可用的internet连接,我发现许多主题都在谈论这一点,但当我尝试验证internet连接时,我仍然存在一个问题,我使用的代码是:

公共布尔等值线{ 连接管理器conMgr= ConnectionManager getSystemServiceContext.CONNECTIVITY\u服务; 如果conMgr.getActiveNetworkInfo!=null&&conMgr.getActiveNetworkInfo.isAvailable&&conMgr.getActiveNetworkInfo.isConnected{ 返回true; }否则{ 返回false; } } 你能帮我什么忙?
对不起,我的英语不好。

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

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

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

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

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

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

在此代码中,您在private 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))

        }
    };

在此代码中,您在private 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))

        }
    };

@MattBall问题是:NullPointer…@Sam Yes清单文件上设置了Internet权限和访问网络状态。请发布您的logcat错误。执行您的代码段,我相信您的空指针在其他地方。@MattBall问题是:空指针…@Sam Yes Internet权限和访问网络状态已设置在清单文件上。请发布您的logcat错误。执行您的代码段,我相信你的空指针在其他地方。根据问题中提到的代码-我得到的isOnline为True-尽管我手机上的其他应用程序正确识别了问题中提到的代码“无互联网连接”-我得到的isOnline为True-尽管我手机上的其他应用程序正确识别了“无互联网连接”