Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中检查互联网连接?_Android - Fatal编程技术网

如何在android中检查互联网连接?

如何在android中检查互联网连接?,android,Android,朋友们 我正在用以下代码检查android中的互联网连接 final ConnectivityManager conn_manager = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE); final NetworkInfo network_info = conn_manager.getActiveNetworkInfo();

朋友们

我正在用以下代码检查android中的互联网连接

final ConnectivityManager conn_manager = (ConnectivityManager) 
            this.getSystemService(Context.CONNECTIVITY_SERVICE);


            final NetworkInfo network_info = conn_manager.getActiveNetworkInfo();
            if ( network_info != null && network_info.isConnected() ) 
            {
                return true;
            }
            else
            {
                return false;
            }
但它给了我网络/wifi连接,如果连接了wifi,它给了我真实的信息,如果没有连接互联网,它也给了我真实的信息


任何人都可以告诉我解决方案是什么?

您可以使用它来检查是否可以连接到特定的IP地址。

这里的
if
子句中的逻辑可能有问题

我用这个:

/**
 * Checks if we have a valid Internet Connection on the device.
 * @param ctx
 * @return True if device has internet
 *
 * Code from: http://www.androidsnippets.org/snippets/131/
 */
public static boolean haveInternet(Context ctx) {

    NetworkInfo info = (NetworkInfo) ((ConnectivityManager) ctx
            .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();

    if (info == null || !info.isConnected()) {
        return false;
    }
    if (info.isRoaming()) {
        // here is the roaming option you can change it if you want to
        // disable internet while roaming, just return false
        return false;
    }
    return true;
}
使用这个漂亮的库:


您可以订阅网络状态通知,并在网络状态更改时获得回调。或者,您可以直接查询网络是否可用。使用非常简单。

如何扩展此代码以按时间间隔检查Internet连接?按时间间隔进行监视可能不是一个好主意,相反,您应该订阅连接广播并对其执行操作。请看这个相关问题:我试过使用这个,但在2.1设备上,在飞机模式下连接到wifi模式时,它报告错误。