Android - 在启动意图之前检查互联网连接

时间:2015-01-22 15:26:12

标签: android

我想在打开意图之前检查互联网连接。我怎样才能做到这一点?我是这个领域的初学者。任何帮助将不胜感激。

4 个答案:

答案 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" />

感谢。