WIFI变化的广播动作

2024-02-21

在我的应用程序中,每当设备连接或断开 WIFI 网络时我都必须收到通知。为此我必须使用BroadcastReceiver但是在阅读了关于 SO 的不同文章和问题后,我有点困惑我应该为此使用哪种广播操作。在我看来,我有三个选择:

  • SUPPLICANT_CONNECTION_CHANGE_ACTION https://developer.android.com/reference/android/net/wifi/WifiManager.html#SUPPLICANT_CONNECTION_CHANGE_ACTION
  • NETWORK_STATE_CHANGED_ACTION https://developer.android.com/reference/android/net/wifi/WifiManager.html#NETWORK_STATE_CHANGED_ACTION
  • 连接性_操作 https://developer.android.com/reference/android/net/ConnectivityManager.html#CONNECTIVITY_ACTION

为了减少资源,我真的只想在设备启动时收到通知CONNECTED到 WIFI 网络(并且已接收到 IP 地址)或当设备已DISCONNECTED从一。我不关心其他州,比如CONNECTING etc.

那么您认为我应该为此使用的最佳广播操作是什么?我是否必须手动过滤事件(因为我收到的事件超过CONNECTED and DISCONNECTED) in onReceive?

EDIT:正如我在下面的评论中指出的,我认为SUPPLICANT_CONNECTION_CHANGE_ACTION对我来说是最好的选择,但我的应用程序从未解雇或收到它。Others https://stackoverflow.com/questions/34803067/supplicant-connection-change-action-never-received该广播也有同样的问题,但从未提出真正的解决方案(实际上使用了其他广播)。有什么想法吗?


你可以去WifiManager.NETWORK_STATE_CHANGED_ACTION 有效。 https://developer.android.com/reference/android/net/wifi/WifiManager.html#NETWORK_STATE_CHANGED_ACTION

注册接收者WifiManager.NETWORK_STATE_CHANGED_ACTION行动,无论是在清单、片段还是活动中,都适合您。

覆盖接收器:

@Override
public void onReceive(Context context, Intent intent) {

    final String action = intent.getAction();

    if(action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)){
        NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
        boolean connected = info.isConnected();
        if (connected)
        //call your method
    }      
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WIFI变化的广播动作 的相关文章

随机推荐

  • 如何在SQL表中插入空行? [复制]

    这个问题在这里已经有答案了 可能的重复 将行插入仅包含一个 IDENTITY 列的表中 https stackoverflow com questions 4117676 inserting rows into a table with o
  • 如何在遇到第一个错误时取消 dockerfile 映像构建?

    如果我的 dockerfile 中的 RUN 命令出现错误 它只会继续执行下一个命令 您确定该命令确实返回错误吗 以下 Dockerfile 无法访问echo foo FROM alpine RUN false RUN echo foo 它
  • 像这样从另一个线程发送电子邮件可以吗?

    在网站中 有时发送电子邮件需要几秒钟 所以我需要从另一个线程发送电子邮件 不要等到电子邮件发送 我找到了这个answer https stackoverflow com questions 57845 backgroundworker th
  • 为什么我无法克隆 git 存储库以用于 readthedocs 来构建文档?

    我正在尝试导入我的项目代码readthedocs这样它就可以为我生成文档 然而 在克隆存储库的阶段 已经出现错误 checkout Failed to import project skipping build Error Failed t
  • 值、类型、种类……作为无限序列?

    我才刚刚开始熟悉类型的概念 所以如果我没有很好地表达我的问题 请耐心等待 值有类型 3 Int 1 2 3 Int c True Char Bool 类型有种类 the type Int has kind the type Int also
  • 核心数据模型设计 - 更改“活动”对象也会更改已保存的对象

    我正在开发我的第一个 Core Data 项目 在 iPhone 上 并且我真的很喜欢它 核心数据是很酷的东西 然而 我遇到了一个设计困难 我不确定如何解决 尽管我认为这是一个相当常见的情况 它涉及数据模型 为了清楚起见 我将使用一个想象的
  • 循环播放列表中的声音

    我得到了这个带有 2 个声音的列表 我想用这个代码来播放它们 不幸的是 它只播放列表中的最后一个声音 我知道使用 pygame Sound 是一个解决方案 但我不知道如何使用它 array a mp3 b mp3 for i in rang
  • Android:应用程序在模拟器上运行,但在我的手机上崩溃

    我的应用程序在模拟器 Nexus 5 Android 7 0 API 24 上运行 但当我尝试使用 onClick 打开另一个活动时 它在我的手机 Samsung J5 Android 5 1 1 上的精确活动中崩溃 这是崩溃的活动 pub
  • 如何在 HTML5 中验证仅允许“输入类型=“文件””JPG、GIF 或 PNG? [复制]

    这个问题在这里已经有答案了 可能的重复 使用时限制文件格式 https stackoverflow com questions 4328947 limit file format when using input type file 我需要
  • git 行结尾:重新规范化似乎没有签出正确的行结尾

    我决定通过正确的方式设置我的行尾 gitattributes例如详细文件here http timclem wordpress com 2012 03 01 mind the end of your line 所以我将 core autoc
  • “npm faq”在 Windows 7 上失败(“spawn ENOENT”错误)

    我已经使用最新的安装程序在 Windows 7 上安装了 node js 看起来有效 我可以打电话npm and node从控制台 cmd 或 PowerShell 但我不断收到错误 这里有很多关于 Windows 上的 Node js 的
  • 用于使用 webdriver 查找 webelement 的多个定位器

    我正在使用 Selenium WebdriverQAF https github com qmetry qaf 我面临的问题与在网页上查找元素有关 对于少数元素 不同的定位器在不同的时间工作 例如 有时 name nameA 有效 有时 n
  • 如何修改并重新发布 AOSP 应用程序?

    我对 Android 电子邮件应用程序中缺少的一个简单功能感到恼火 由于此应用程序发布为开源 https github com android platform packages apps email我可以很容易地解决这个问题 问题 如何发
  • 解析“querystring”格式数据的最简单方法

    使用以下代码 string q userID 16555 gameID 60 score 4542 122 time 343114 解析这些值的最简单方法是什么 最好不编写自己的解析器 我正在寻找具有相同功能的东西Request query
  • 后台工作者 CancelAsync() 不起作用

    我正在尝试取消我的后台工作人员WorkerClass bw CancelAsync 但这根本行不通 编辑 我在这里发布了完整的代码 希望这会有所帮助 好的 我添加了一些消息框来了解工作人员是否仍然忙碌 并且有线的事情是 我得到一个false
  • 在 ElasticSearch Nest 客户端中创建自定义分析器

    我对使用 Nest 客户端的 Elasticsearch 非常陌生 我正在使用自定义分析器创建索引 但是在使用分析进行测试时 它似乎没有使用自定义分析器 主要是没有出现edgengram标记 我是否缺少任何东西可以使我的自定义分析器成为索引
  • Python从列表中删除项目[重复]

    这个问题在这里已经有答案了 我有一个给定格式的列表 John Smith Linus Torvalds Bart Simpson 列表 Linus Torvalds 中有一些这样的元素 我想删除它们 那么为什么下面的代码不删除它们呢 for
  • 在站点之间传递凭据

    我在具有两个不同域的两台不同服务器上运行两个不同的站点 一个站点运行 Joomla 另一个站点运行 Moodle 我已将 Moodle 服务器配置为基于 Joomla 站点上的用户表进行身份验证 因此我们拥有权威的用户信息来源 我想做的是
  • Android - 如何解析 JSONObject 和 JSONArrays

    我的版本是 Android 2 2 Google API 8 我从模拟器运行 我正在尝试尝试访问此 JSON 对象中的位置 我使用后得到这个 InputStream instream entity getContent JSONObject
  • WIFI变化的广播动作

    在我的应用程序中 每当设备连接或断开 WIFI 网络时我都必须收到通知 为此我必须使用BroadcastReceiver但是在阅读了关于 SO 的不同文章和问题后 我有点困惑我应该为此使用哪种广播操作 在我看来 我有三个选择 SUPPLIC