如何查看Wifi是否连接,但在Android上无法上网

我想知道为什么wifi连接,但没有互联网接入在Android。 我如何检查? 我的代码是:

ConnectivityManager cn=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo nf=cn.getActiveNetworkInfo(); if(nf != null && nf.isConnected() ) { Flag2=false; Log.e("network--------", "1--------------"); if (cn.getActiveNetworkInfo().isConnectedOrConnecting()) {Log.e("network--------", "11111111111111--------------"); } else {Log.e("network--------", "2222222222222--------------"); } } else { Log.e("network--------", "2--------------"); } 

Solutions Collecting From Web of "如何查看Wifi是否连接,但在Android上无法上网"

你可以尝试这样的事情:

 public void checkOnlineState() { ConnectivityManager CManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo NInfo = CManager.getActiveNetworkInfo(); if (NInfo != null && NInfo.isConnectedOrConnecting()) { if (InetAddress.getByName("www.xy.com").isReachable(timeout)) { // host reachable } else { // host not reachable } } return; } 

不要忘记访问

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

希望它会工作:)

用这个

 public static boolean isInternetOn(Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); // test for connection if (cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isAvailable() && cm.getActiveNetworkInfo().isConnected()) { Log.v(TAG, "Internet is working"); // txt_status.setText("Internet is working"); return true; } else { // txt_status.setText("Internet Connection Not Present"); Log.v(TAG, "Internet Connection Not Present"); return false; } } 

除了你现在正在做的,你可以使用BroadcastReceiver为你的应用程序获得通知,每当连接改变注册<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>意图。

请参阅文档: BroadcastReceiver和Connectivity Monitoring进行详细说明。

我希望这会有所帮助!

 ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = manager.getActiveNetworkInfo(); if (info != null && info.isAvailable()) { return true; } return false;