检查网络和 Internet 连接 - Android
Check Network and Internet Connection - Android
我想知道下面的方法是否检查我都连接到网络,并且实际上也可以连接到互联网。
不只是连接到不允许我访问互联网的网络?
public boolean isNetworkAvailable() {
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
boolean isAvailable = false;
if (networkInfo != null && networkInfo.isConnected()) {
isAvailable = true;
}
return isAvailable;
}
我想,确实如此,但我不是 100% 确定。
谢谢
将此 post 上接受的答案与您的代码进行比较,您所做的应该有效。随意比较代码。最安全的做法是 运行 在飞行模式下进行一些测试,关闭 WiFi,并在远离 WiFi 的位置进行测试,以确保万无一失。祝你好运。
Android - Programmatically check internet connection and display dialog if notConnected
看看 one of my old answers。它有两种不同的方法
1.检查设备是否连接到网络
2. 检查设备是否连接到互联网。
下面的代码将在 android studio 中使用 kotlin 检查互联网连接:
private fun amIConnected(): Boolean {
val connectivityManager = this.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetworkInfo = connectivityManager.activeNetworkInfo
return activeNetworkInfo != null && activeNetworkInfo.isConnected
}
我尝试了 的方法,但当互联网连接关闭时,它总是让我的应用程序崩溃。原来他的代码存在逻辑错误,所以我使用 connectivityManager.getActiveNetworkInfo() != null
检查网络详细信息。如果设备已连接到网络或正在连接到网络,请使用 isConnectedOrConnecting()
在您的 AndroidManifest.xml 文件中添加以下内容
<!-- Internet Permissions -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
在您的 片段 class 或 Activity class[= 中创建一个名为 checkInternetConnection
的方法33=] 并添加以下代码行。
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private boolean checkInternetConnection(){
ConnectivityManager connectivityManager = (ConnectivityManager) mcontext.getSystemService(mcontext.CONNECTIVITY_SERVICE);
return connectivityManager.getActiveNetworkInfo() != null
&& connectivityManager.getActiveNetworkInfo().isConnectedOrConnecting();
}
然后您可以在片段的 onViewCreated
方法或 activity 的 onCreate
方法中调用 checkInternetConnection
。
备注
我强烈建议您在连接到 wifi、移动数据和飞行模式时测试代码。
我想知道下面的方法是否检查我都连接到网络,并且实际上也可以连接到互联网。
不只是连接到不允许我访问互联网的网络?
public boolean isNetworkAvailable() {
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
boolean isAvailable = false;
if (networkInfo != null && networkInfo.isConnected()) {
isAvailable = true;
}
return isAvailable;
}
我想,确实如此,但我不是 100% 确定。
谢谢
将此 post 上接受的答案与您的代码进行比较,您所做的应该有效。随意比较代码。最安全的做法是 运行 在飞行模式下进行一些测试,关闭 WiFi,并在远离 WiFi 的位置进行测试,以确保万无一失。祝你好运。
Android - Programmatically check internet connection and display dialog if notConnected
看看 one of my old answers。它有两种不同的方法 1.检查设备是否连接到网络 2. 检查设备是否连接到互联网。
下面的代码将在 android studio 中使用 kotlin 检查互联网连接:
private fun amIConnected(): Boolean {
val connectivityManager = this.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetworkInfo = connectivityManager.activeNetworkInfo
return activeNetworkInfo != null && activeNetworkInfo.isConnected
}
我尝试了 connectivityManager.getActiveNetworkInfo() != null
检查网络详细信息。如果设备已连接到网络或正在连接到网络,请使用 isConnectedOrConnecting()
在您的 AndroidManifest.xml 文件中添加以下内容
<!-- Internet Permissions -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
在您的 片段 class 或 Activity class[= 中创建一个名为 checkInternetConnection
的方法33=] 并添加以下代码行。
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private boolean checkInternetConnection(){
ConnectivityManager connectivityManager = (ConnectivityManager) mcontext.getSystemService(mcontext.CONNECTIVITY_SERVICE);
return connectivityManager.getActiveNetworkInfo() != null
&& connectivityManager.getActiveNetworkInfo().isConnectedOrConnecting();
}
然后您可以在片段的 onViewCreated
方法或 activity 的 onCreate
方法中调用 checkInternetConnection
。
备注 我强烈建议您在连接到 wifi、移动数据和飞行模式时测试代码。