0

我尝试实现网络接收器,这是我的以下代码:

   package com.example.androidtablayout;

 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.util.Log;

public class NetworkReceiver extends BroadcastReceiver { // <1>
 public static final String TAG = "NetworkReceiver";
 boolean isConnected = true;
Context c;
 @Override
 public void onReceive(Context context, Intent intent) {


  boolean isNetworkDown = intent.getBooleanExtra(
    ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);  // <2>

  if (isNetworkDown) {
    Log.d(TAG, "onReceive: NOT connected, stopping UpdaterService");
   // context.stopService(new Intent(context, UpdaterService.class)); // <3>
   } else {
       Log.d(TAG, "onReceive: connected, starting UpdaterService");
   //  context.startService(new Intent(context, UpdaterService.class)); // <4>
    }
  }

 }

在 Manifest.xml 中

      <application>
       <receiver android:name=".NetworkReceiver">
    <intent-filter>
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
      </receiver> 
   </application>

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

我的问题是当我关闭wifi时,日志仍然显示“已连接”,

我认为网络接收器没有正确接收互联网连接。任何帮助将不胜感激。

4

1 回答 1

0

是一个示例类,向您展示如何做到这一点。我认为这正是您所需要的,它可能有助于解决您的问题。在此示例中,BroadcastReceiver 以编程方式注册而不是 Manifest,但我认为这对您来说不是问题。

让我知道是否有效。

于 2012-07-08T17:14:39.237 回答