我想在打开意图之前检查互联网连接。我怎样才能做到这一点?我是这个领域的初学者。任何帮助将不胜感激。
答案 0 :(得分:1)
此方法检查移动设备是否已连接到互联网并在连接时返回true,并且您还需要更新清单文件
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo == null) {
// There are no active networks.
return false;
} else
return true;
}
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
答案 1 :(得分:0)
尝试以下代码
public boolean isOnline() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
return netInfo != null && netInfo.isConnectedOrConnecting();
}
在清单中添加权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
答案 2 :(得分:0)
在开始新的Intent之前使用ConnectivityManager
,如果isConnectedOrConnecting()
返回true
,您可以继续Intent.startActivity()
不要忘记清单中的android.permission.ACCESS_NETWORK_STATE
请查看重复的here以获得更深入的解释
答案 3 :(得分:0)
非常简单将此功能复制到您想要从中调用的活动。
public boolean CheckInternet() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
//we are connected to a network
return true;
}
return false;
}//end of check int
现在在Intent之前只需在条件
中调用此函数if(CheckInternet()){
Intent intent=new Intent(this,NextActivity.class);
startActivity(intent);
}
else{
Toast.makeText(this, "No Internet.", Toast.LENGTH_SHORT).show();
}
不要忘记在AndroidManifest.xml中添加这些行
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
感谢。