networkInfo.isConnected() 方法 return 即使没有互联网也是如此?
networkInfo.isConnected() method return true even there is no internet?
我开发了这个应用程序,主要是 activity 我检查互联网连接如下:
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
LoaderManager loaderManager = getSupportLoaderManager();
loaderManager.initLoader(1, null, this);
}
当我去 HOURLY
activity 时,我用与上面相同的方法 onCreate()
方法检查互联网。
我的问题,当我打开主 activity 我断开互联网并转到 HOURLY
activity 来处理 "no internet exception" 但 networkInfo.isConnected() HOURLY
activity return true
为什么互联网仍然连接???
我不知道你打算用上面的代码做什么,但我相信这会起作用。
ConnectivityManager
的 getActiveNetworkInfo()
方法 returns 一个 NetworkInfo
实例,表示它可以找到的第一个连接的网络接口,如果 none 个接口,则为 null连接。检查此方法 returns null 是否足以判断互联网连接是否可用。
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" />
在您的 android 清单中。
请注意,拥有活动的网络接口并不能保证特定的网络服务可用。网络问题、服务器停机、低信号、强制门户、内容过滤器等都会阻止您的应用程序到达服务器。例如,在收到来自 Twitter 服务的有效响应之前,您无法确定您的应用是否可以访问 Twitter。
我开发了这个应用程序,主要是 activity 我检查互联网连接如下:
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
LoaderManager loaderManager = getSupportLoaderManager();
loaderManager.initLoader(1, null, this);
}
当我去 HOURLY
activity 时,我用与上面相同的方法 onCreate()
方法检查互联网。
我的问题,当我打开主 activity 我断开互联网并转到 HOURLY
activity 来处理 "no internet exception" 但 networkInfo.isConnected() HOURLY
activity return true
为什么互联网仍然连接???
我不知道你打算用上面的代码做什么,但我相信这会起作用。
ConnectivityManager
的 getActiveNetworkInfo()
方法 returns 一个 NetworkInfo
实例,表示它可以找到的第一个连接的网络接口,如果 none 个接口,则为 null连接。检查此方法 returns null 是否足以判断互联网连接是否可用。
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" />
在您的 android 清单中。
请注意,拥有活动的网络接口并不能保证特定的网络服务可用。网络问题、服务器停机、低信号、强制门户、内容过滤器等都会阻止您的应用程序到达服务器。例如,在收到来自 Twitter 服务的有效响应之前,您无法确定您的应用是否可以访问 Twitter。