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

检查网络连接时出现问题

  •  0
  • Andrew  · 技术社区  · 16 年前

    我有一个IntentService,它可以进行一些web服务调用。在打这些电话之前,我会检查设备是否具有网络连接。我是这样做的:

     private boolean isOnline() {
      ConnectivityManager connec =  (ConnectivityManager)getSystemService(getApplicationContext().CONNECTIVITY_SERVICE);
      return connec.getNetworkInfo(0).isConnectedOrConnecting();
     }
    

    一些有趣的小道消息连接网络信息(0):

    mIsAvailable = true
    mNetworkType = 0
    mTypeName = "mobile"
    mState.name = "DISCONNECTED"
    

    显然,这段代码是不够的(也许只有当我通过网络发送一些比特并打开收音机时,它才会返回true?)。此外,由于我对ConnectivityManager不太熟悉,我假设我应该扫描所有网络(即:getNetworkInfo(0到N))。

    我怎样才能完成我想要的?

    1 回复  |  直到 16 年前
        1
  •  4
  •   danh32    16 年前

    试试这个:

    public static boolean isNetworkConnected(Context context){
        ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo network = cm.getActiveNetworkInfo();
    
        if(network != null){
            return network.isAvailable();
        }
    
        return false;
    }