我在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数据包有限制吗?或者它也可以正常工作?
答案 0 :(得分:0)
在android中,如果关闭屏幕,处理器会进入睡眠状态。在这种状态下只有必要的功能(电话,短信等)工作。 您可以使用唤醒锁,这样可以防止手机进入睡眠状态,并且您的代码将被执行。