网络接收器不工作

时间:2012-07-08 15:35:53

标签: android

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

   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时,日志仍显示“已连接”,

我认为网络接收器没有正确接收内联网连接。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

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

如果有效,请告诉我。