Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 检查I';我在网络本地,但没有互联网,安卓_Android - Fatal编程技术网

Android 检查I';我在网络本地,但没有互联网,安卓

Android 检查I';我在网络本地,但没有互联网,安卓,android,Android,我如何才能知道我是否连接到本地网络,但没有连接到Internet,或者没有接收数据?我正在试着找到一种可以检查它的方法。。。请帮帮我,我正在安卓系统中工作请验证是否允许您通过应用程序访问互联网 其权限在AndroidManifest.xml中定义。 请确保您具有以下权限 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.per

我如何才能知道我是否连接到本地网络,但没有连接到Internet,或者没有接收数据?我正在试着找到一种可以检查它的方法。。。请帮帮我,我正在安卓系统中工作

请验证是否允许您通过应用程序访问互联网

其权限在
AndroidManifest.xml
中定义。 请确保您具有以下权限

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

这就是你能做到的

检查网络是否像这样可用

功能1

private boolean isNetworkAvailable() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    return netInfo != null && netInfo.isConnectedOrConnecting();
}
之后,像这样检查互联网是否可用

功能2

 public static boolean isInternetAccessible(Context context) {
     if (isWifiAvailable()) {
         try {
             HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
            urlc.setRequestProperty("User-Agent", "Test");
            urlc.setRequestProperty("Connection", "close");
            urlc.setConnectTimeout(1500); 
            urlc.connect();
            return (urlc.getResponseCode() == 200);
        } catch (IOException e) {
            Log.e(LOG_TAG, "Couldn't check internet connection", e);
        }
       } else {
           Log.d(LOG_TAG, "Internet not available!");
       }
   return false;
}
  • 如果函数1返回false-->未连接到网络
  • 如果函数1返回true,函数2返回false-->已连接但没有INTERNET
  • 如果两个函数都返回true-->可以访问Internet
  • 注意清单中需要这两个权限

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
    
    
    我对它进行了测试,效果很好,非常感谢Rohit5K2您如何使用异步任务实现这一点?我希望布尔值返回给调用它的活动。
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />