【问题标题】:Broadcast Intent when network state has changend网络状态改变时的广播意图
【发布时间】:2010-04-20 14:43:29
【问题描述】:

当网络状态发生变化(即从 GSM 到 Wifi)时,Android 是否会广播意图?如果需要,我需要什么权限?意图操作是什么?

【问题讨论】:

    标签: java android broadcastreceiver


    【解决方案1】:

    更新:请改用这个:https://stackoverflow.com/a/2677519/241869

    【讨论】:

    • 我不熟悉这个主题,但在 Defcon 的一次谈话中指出了这个答案中的一个错误。请参阅presentation 中的幻灯片 51。有人可以相应地更新吗?
    • 已修复。谢谢你告诉我。
    • 我看不出这个答案与这个问题有什么关系。网络连接可能会从手机网络变为蓝牙网络共享,而代码永远不会知道。 请不要使用这个。 AI 的回答关于 ConnectivityManager.CONNECTIVITY_ACTION 指向正确的方向。
    【解决方案2】:

    没有任何与您所描述的完全一样的东西,但您可以使用ConnectivityManager.CONNECTIVITY_ACTION 来监控更改并使用它附带的附加功能来查看连接是否已从 GSM 更改为 Wifi,反之亦然。为此,您需要获得android.permission.ACCESS_NETWORK_STATEandroid.permission.ACCESS_WIFI_STATE 的权限才能检查wifi 信息。

    【讨论】:

    • 我不明白为什么 CONNECTIVITY_ACTION 不是所要求的。另外,就个人而言,我不需要 android.permission.ACCESS_WIFI_STATE 来接收 CONNECTIVITY_ACTION 事件。除此之外...感谢您提供问题的正确答案!
    【解决方案3】:

    Android 将广播WifiManager.NETWORK_STATE_CHANGED_ACTION 当设备 获得或失去 wifi 连接。您需要android.permission.ACCESS_WIFI_STATE 的权限才能接收意图。但是,我不确定是否 GSM -> WIFI 也有类似的东西。

    【讨论】:

    • 在问题中,WiFi仅作为示例提及。这个问题是指一般的网络状态,与特定的 WiFi 连接无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多