Android 互联网连接

Android 互联网连接,android,Android,我正在使用ConnectionManager。我不知道我的代码会发生什么,如果连接到internet,它总是返回null。请帮帮我 public static boolean isOnline(Context ctx) { // Toast.makeText(ctx,"get", Toast.LENGTH_LONG).show(); ConnectivityManager mManager = (ConnectivityManager) ctx .getS

我正在使用ConnectionManager。我不知道我的代码会发生什么,如果连接到internet,它总是返回null。请帮帮我

public static boolean isOnline(Context ctx) {
    // Toast.makeText(ctx,"get", Toast.LENGTH_LONG).show();
    ConnectivityManager mManager = (ConnectivityManager) ctx
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo mNetworkInfo = mManager.getActiveNetworkInfo();
    if ((mNetworkInfo != null) && (mNetworkInfo.isConnected())) {
        return true;
    }
    return false;
    }


        if (NetworkConnection.isOnline(TIENews.this)) {
            new GetNewsDetailAsyncTask(TIENews.this, url, newsListView)
                    .execute();
        } else {
            Log.e("tag", "netIno return null");
            super.OpenWiFiDialog(getResources().getString(
                    R.string.internet_error_msg));
        }
    }

谢谢,亲爱的。我的代码在今天之前运行良好,应用程序也在运行。但是我不知道从最后几天到现在这段代码中发生了什么,所以无法运行。而且我没有遇到问题

代码似乎很好。我认为上下文存在问题,即上下文为空,或者清单中的Internet权限为空。。因此,请检查它。

这是检查网络是否存在的方法:

ConnectivityManager
方法1

public boolean isConnected(){
  boolean result=false;
  ConnectivityManager cm = (ConnectivityManager) getApplicationContext()
    .getSystemService(Context.CONNECTIVITY_SERVICE);
  NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
  if (null != activeNetwork) {
            if(activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)
             {
              result=true;
             msg="You are connected to a WiFi Network";
             }
            if(activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)
            {
                result=true;
              msg="You are connected to a Mobile Network";
               }
            }   
  else{
   msg = "No internet Connectivity";
 result=false;
}

   return result;
 }
方法2

public  boolean isConnected() {
  ConnectivityManager cm = (ConnectivityManager) getApplicationContext()
    .getSystemService(Context.CONNECTIVITY_SERVICE);
   // test
   if (cm.getActiveNetworkInfo() != null
     && cm.getActiveNetworkInfo().isAvailable()
     && cm.getActiveNetworkInfo().isConnected()) {

   msg="You are connected to a Network";

   return true;
   } else {

    msg = "No internet Connectivity";

    return false;
   }
  }
将以下行添加到您的清单:

<uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

我在您的代码中找不到任何错误。可能是上下文为空

或者你可以简单地尝试这行代码来检查互联网连接

// by default - its false
    private boolean isInternetConnected = false;

// Check the internet connectivity 

    isInternetConnected = Utilities.isInternetAvailable(MainActivity.this);

if(isInternetConnected){
  // perform here
}

public static boolean isInternetAvailable(Context context) {
        boolean haveConnectedWifi = false;
        boolean haveConnectedMobile = false;
        boolean connectionavailable = false;
        ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo[] netInfo = cm.getAllNetworkInfo();
        NetworkInfo informationabtnet = cm.getActiveNetworkInfo();
        for (NetworkInfo ni : netInfo) {
            try {
                if (ni.getTypeName().equalsIgnoreCase("WIFI"))
                   if (ni.isConnected())
                       haveConnectedWifi = true;
                if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
                   if (ni.isConnected())
                       haveConnectedMobile = true;
                if (informationabtnet.isAvailable()
                       && informationabtnet.isConnected())
                   connectionavailable = true;

            } catch (Exception e) {

                System.out.println("Inside utils catch clause , exception is"
                       + e.toString());
                e.printStackTrace();
            }
        }
        return haveConnectedWifi || haveConnectedMobile;
     }
还要在清单中添加Internet权限。

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
public boolean isNetwokReachable() {
   ConnectivityManager connectivityManager = (ConnectivityManager) mSmartAndroidActivity.getSystemService(Context.CONNECTIVITY_SERVICE);
   if (connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo() .isConnected()) {
       return true;
   } else {
       return false;
   }
}

公共类连接检测器{
私人语境(private Context)(私人语境);;
公共连接检测器(上下文){
这._context=context;
}
公共布尔值未连接到Internet(){
ConnectionManager连接=(ConnectionManager)\u上下文
.getSystemService(Context.CONNECTIVITY\u服务);
if(连接性!=null){
NetworkInfo[]info=connectivity.getAllNetworkInfo();
如果(信息!=null)
对于(int i=0;i
试试这种方法,希望这能帮助您解决问题。

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
public boolean isNetwokReachable() {
   ConnectivityManager connectivityManager = (ConnectivityManager) mSmartAndroidActivity.getSystemService(Context.CONNECTIVITY_SERVICE);
   if (connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo() .isConnected()) {
       return true;
   } else {
       return false;
   }
}
在AndroidManifest.xml中添加以下所需权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 


签入清单以获取Internet权限。此外,您的数据计划/wi-fi已连接或没有连接?您是否已将权限
传递
getApplicationContext()
作为上下文添加到您的
isOnline(getApplicationContext())