代码之家  ›  专栏  ›  技术社区  ›  xenonite

如何确定android设备上的internet连接当前是否可用且处于活动状态?

  •  3
  • xenonite  · 技术社区  · 15 年前

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

    所以:如果希望将更新服务安排到某个日期,并且当它启动时,它应该确定它是否真正能够到达目标服务器。因此,一个简单的“设备是否连接到wifi?”不足够,因为设备可能连接到不提供internet访问的无线网络。需要像PING这样的命令。。。

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

    4 回复  |  直到 15 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    看看这个 answer 这里是StackOverflow。它应该正是你想要的。

        2
  •  4
  •   james    15 年前
    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" />

        3
  •  2
  •   San Jacinto    15 年前

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

        4
  •  0
  •   Community Mohan Dere    9 年前

    Here 是解决问题的最佳答案:

    设备已连接到路由器,但没有处于活动状态的internet网关。

    推荐文章