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

このコードでは、プライベート変数に赤いステータスがあります。

    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 に答える