【问题标题】:Not sending/receiving udp packets when the phone's screen is blocked Android手机屏幕被阻止时不发送/接收udp数据包Android
【发布时间】:2015-06-15 16:44:15
【问题描述】:

我在 Android 中发送和接收 UDP 数据包时遇到问题。 我必须定期发送它们,当两部电话都打开屏幕时一切正常。

当我关闭屏幕时,发送消息的手机停止发送消息,然后,当我再次触摸屏幕时,它再次开始发送消息,但如果正在接收的手机关闭屏幕,它不会'什么都收不到。

假设两部手机 A 正在接收,B 正在发送:

1 - 他们都打开了屏幕。

2 - 我关闭了 B 的屏幕 --> B 不发送消息

3 - 我打开 B 的屏幕 --> B 再次开始发送消息

4 - 我关闭了 A 的屏幕 --> B 正在发送,但 A 没有收到任何内容

5 - 我打开 A 的屏幕 --> 一切又正常了。

有谁知道 Android 中的 UDP 发送/接收是否存在某种问题? (例如,在 iOS 中,当屏幕关闭时,通过 UDP 的接收被阻止)。我读到 UDP 广播数据包的接收存在问题,但在这种情况下没有广播,它们被发送到特定的 IP 和端口。

提前致谢!

编辑:

再问一个问题,我们在使用移动网络时有什么额外的考虑吗?使用唤醒锁,当我使用 wifi 时一切正常,但是当我使用 3g 时,我无法接收任何东西(但另一部手机正在使用 3g 发送)。在移动网络中接收 UDP 数据包是否有限制?或者它也应该可以正常工作?

【问题讨论】:

    标签: android udp


    【解决方案1】:

    在 android 中,如果您关闭屏幕,处理器将进入睡眠状态。在这种状态下,只有必要的功能(电话、短信等)起作用。 但是你可以使用wakelock,这样你就可以防止你的手机进入睡眠状态,并且你的代码会被执行。

    【讨论】:

      猜你喜欢
      • 2012-10-03
      • 2012-05-20
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-14
      相关资源
      最近更新 更多