1

デバイスでインターネットデータを有効にすると、ネットワークに E が表示されます。しかし、SIMにデータパックがなく、インターネットがどのアプリでも機能していません。このコードを使用したところ、インターネットが存在するという true が返されました。この場合、インターネットが機能しているかどうかを確認する方法:

 public static boolean isConnectingToInternetLatest(Context mContext) {
    ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        Network[] networks = connectivityManager.getAllNetworks();
        NetworkInfo networkInfo;
        for (Network mNetwork : networks) {
            networkInfo = connectivityManager.getNetworkInfo(mNetwork);
            if (networkInfo.getState().equals(NetworkInfo.State.CONNECTED)) {
                return true;
            }
        }
    } else {
        if (connectivityManager != null) {
            //noinspection deprecation
            NetworkInfo[] info = connectivityManager.getAllNetworkInfo();
            if (info != null) {
                for (NetworkInfo anInfo : info) {
                    if (anInfo.getState() == NetworkInfo.State.CONNECTED) {
                        //Log.d("Network", "NETWORK NAME: " + anInfo.getTypeName());
                        return true;
                    }
                }
            }
        }
    }
    return false;
}
4

2 に答える 2

1
public boolean isInternetWorking() {
boolean success = false;
try {
    URL url = new URL("https://google.com");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setConnectTimeout(10000);
    connection.connect();
    success = connection.getResponseCode() == 200;
} catch (IOException e) {
    e.printStackTrace();
}
return success;
}
于 2016-10-18T14:58:01.253 に答える