【问题标题】:How to check internet connectivity in android?如何在android中检查互联网连接?
【发布时间】:2012-02-10 11:15:53
【问题描述】:

朋友们,

我正在尝试检查 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 连接,它给了我真实的信息,如果没有连接互联网,它也给了我真实的信息。

有人指导我解决办法是什么?

【问题讨论】:

    标签: android


    【解决方案1】:

    您在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 连接?
    • 按时间间隔监控可能是个坏主意,相反,您应该订阅连接广播并对其采取行动。请参阅此相关问题:stackoverflow.com/questions/3307237/…
    • 我试过用这个,但在 2.1 设备上,在飞行模式下连接到 wifi 模式时它报告错误。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      使用这个漂亮的库:http://code.google.com/p/connectivity

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

      【讨论】:

        猜你喜欢
        • 2013-02-02
        • 1970-01-01
        • 1970-01-01
        • 2012-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多