android - 无法接收网络相关事件

标签 android broadcastreceiver android-broadcast network-connection

我已经注册到 ConnectivityManager.CONNECTIVITY_ACTION BroadcastReceiver,用于接收网络状态事件,但是当我打开或关闭我的 wifi 连接时,我的 onReceive 函数没有被调用。

如文档中所述,这是一个 Sticky Broadcast Receiver,当我们注册它时会被触发。

但是当我注册此接收器时,我的 onReceive 函数中没有收到任何事件,这可能是什么原因?

在我的 list 文件中,我拥有访问 Internet/网络/Wifi 连接及其状态的所有权限。

我正在使用以下代码注册此 Intent :

registerReceiver(mNetworkStateReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));

在我的 Logcat 中,我收到了针对此广播接收器注册的以下错误消息:

01-01 00:05:29.804: ERROR/WifiHW(1305): Unable to open connection to supplicant on "/data/system/wpa_supplicant/wlan0": Connection refused

可能是什么原因?有什么方法可以查明 BroadcastReceiver 是否注册正确?

谢谢。

最佳答案

这对我有用:

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

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

代码:

public class ConnectivityReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
      Log.d(ConnectivityReceiver.class.getSimpleName(), "action: "
              + intent.getAction());
  }
}

并且不要忘记注册所有网络权限。

关于android - 无法接收网络相关事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8851763/

相关文章:

android - Broadcast Receiver 每 5 分钟获取一次 wifi 信号

android - 如何从 SD 卡保存和获取图像 Cropped Android 的路径?

java - 从主要 Activity android 调用广播接收器

java - 如何从 Intent 对象android获取请求代码

android - 将数据从广播接收器传递到另一个 Activity

android - 使用 BroadcastReceiver Intent 查询 SpeechRecognizer 支持的语言

android - 如何向 list 中的接收者发送自定义广播操作?

android - 等效于没有 Android 支持库的 LocalBroadcastManager

android - OpenTok 抓取订阅者视频流的屏幕截图

android - 9patch drawable 1px 黑线可见&内容定位