2016-09-22 34 views
-4

网络以我主要活动我有检查用户是否连接到机器人

if (isNetworkAvailable() == true) { 
     Log.i("testing", "available"); 

    } else { 
     Log.i("test", "unaivalibale"); 
    } 

然后下面我有作为

private boolean isNetworkAvailable() { 
    ConnectivityManager connectivityManager 
      = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
    return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
} 

我还设置

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
该方法

在清单中,但是当我运行该应用程序时,它总是停止,导致应用程序出现问题

+2

显示logcat的输出。 –

+0

错误是由“Context”引起的,请参阅我的解决方案以进行适当的验证。 – W4R10CK

+0

[如何检查Android上的互联网访问? InetAddress永不超时](http://stackoverflow.com/questions/1560788/how-to-check-internet-access-on-android-inetaddress-never-times-out) – Soham

回答

1

做一个类,并适当加方法:

public class ConnectivityStatus extends ContextWrapper{ 
public ConnectivityStatus(Context base) { 
    super(base); 
} 

public static boolean isConnected(Context context){ 

    ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo connection = manager.getActiveNetworkInfo(); 
    if (connection != null && connection.isConnectedOrConnecting()){ 
     return true; 
    } 
    return false; 
} 
} 

获取状态,在活动,您使用如:

if(!ConnectivityStatus.isConnected(your_class_name.this)){ 
      //not connected 
}else { 
      //connected 
} 
0
/********************************************************* 
* NetworkStatus helps us to check the Internet connection 
* state of our handheld device.************************** 
********************************************************/ 
package com.mynetwork.network; 

import android.content.Context; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.util.Log; 
import android.widget.Toast; 


/** 
* @author Aashutosh 
* 
*/ 
public class NetworkStatus { 

    private static NetworkStatus instance = new NetworkStatus(); 
    static Context context; 
    ConnectivityManager connectivityManager; 
    NetworkInfo wifiInfo, mobileInfo; 
    boolean connected = false; 

    public static NetworkStatus getInstance(Context ctx) { 
     context = ctx; 
     return instance; 
    } 

    public boolean isOnline(Context con) { 
     try { 
      connectivityManager = (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
      connected = networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected(); 
      return connected; 
     } catch (Exception e) { 
      e.printStackTrace(); 
      Toast.makeText(context,"Check Connectivity Exception: " + e.getMessage(), Toast.LENGTH_SHORT).show(); 
      Log.v("connectivity", e.toString()); 
     } 
     return connected; 
    } 

    /** 
    * Checking for all possible Internet providers 
    **/ 
    public boolean isConnectedToInternet(){ 
     connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     if (connectivityManager != null){ 
      NetworkInfo[] info = connectivityManager.getAllNetworkInfo(); 
      if (info != null){ 
       for (int i = 0; i < info.length; i++){ 
        if (info[i].getState() == NetworkInfo.State.CONNECTED){ 
         return true; 
        } 
       } 
      } 
     } 
     return false; 
    } 
} 
相关问题