【问题标题】:how to determine, if an internet connection is currently available and active on an android device?如何确定互联网连接当前是否可用并且在 android 设备上处于活动状态?
【发布时间】:2010-11-11 12:53:31
【问题描述】:

我有这个需要通过互联网从远程服务器加载数据的 android 应用程序。这个更新功能显然要求设备不仅要连接到某种网络,还要连接到互联网。

so:希望将更新服务安排到某个日期,当它启动时,它应该确定它是否真的可以到达目标服务器。因此,一个简单的“设备是否连接到 wifi?”还不够,因为设备可能连接到不提供互联网访问的无线网络。需要 PING 之类的东西...

确定是否有可用的互联网连接(即服务器是否可访问)最简单/最好的方法是什么?

【问题讨论】:

    标签: java android connection


    【解决方案1】:
    boolean connected;            
    ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
                if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || 
                        connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
                    //we are connected to the internet
                    connected = true;
                }
                else
                    connected = false;
    

    添加权限:<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    【讨论】:

    • 问题:如果我的设备连接到某个不能用作互联网网关的 wifi 网络怎么办?
    【解决方案2】:

    只需尝试连接到您的服务器,如果您在可接受的时间内没有开始下载进度,则超时。

    【讨论】:

      【解决方案3】:

      在 StackOverflow 上查看此 answer。它应该正是您正在寻找的。​​p>

      【讨论】:

        【解决方案4】:

        Here是问题的最佳答案:

        设备已连接到路由器,但没有活动的互联网网关。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-02-09
          • 1970-01-01
          • 2011-01-17
          • 1970-01-01
          • 2019-09-05
          • 1970-01-01
          • 2016-06-28
          • 2011-07-25
          相关资源
          最近更新 更多