0
public static boolean isNetworkAvailable(Context context) 
    {
        ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo ni = cm.getActiveNetworkInfo();


        if (ni == null) 
        {
            // There are no active networks.
            return false;
        }
        else if(ni.isAvailable() && cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == State.CONNECTED)
        {
            Log.i("NetworkState","Wifi Connected");
            return true;
        }
           else
          {
                    return false;
          }
}

このメソッドはtrue、インターネットに接続していないルーターに接続している場合でも戻ります。インターネットに接続できるかどうかを判断するにはどうすればよいですか。

または、まず自分のサーバーまたは google.com に Ping して、インターネットがあるかどうかを判断する必要がありますか?

4

1 に答える 1

0

この機能を試してください:

private final boolean isInternetOncheck() {
    ConnectivityManager connec = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
    if (!(connec.getActiveNetworkInfo() != null && connec.getActiveNetworkInfo().isAvailable() && connec.getActiveNetworkInfo().isConnected())) {
        Log.d(TAG+"Internet not aviable");
        ErrorDialog.dispDialog(MainList.this, getString(R.string.internet_is_not_available), getString(R.string.eliteerp));
        return false;
    } else {
        Log.d(TAG+"Internet available");
        return true;
    }
}

許可を得て

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
于 2013-06-10T07:46:27.080 に答える