Android iBeacon客户端 - 如何节省电池

时间:2014-02-22 17:14:37

标签: android android-wifi battery ibeacon

我被赋予了为Android创建iBeacon客户端的任务。客户端的目的是当另一个客户端请求用户位置时,将最近的信标的ID通过WIFI / 3g / 4g传输到服务器。

现在,我想知道,就电池消耗而言,这样做的最佳方式是什么?

(据我所见)有两种方法:

1)。只要最近的信标的ID发生变化,就将新ID直接上传到服务器。

2)。将最近的信标的ID存储在客户端的电话上。仅在服务器请求客户端执行此操作时才将其上载到服务器。

Nr 1)。意味着每次用户接近新的iBeacon时都必须激活WIFI。另一方面,2)。要求电话收听端口以处理来自服务器的请求。

编辑:我在这里阅读了无线电状态机:http://developer.android.com/training/efficient-downloads/efficient-network-access.html

如果我在后台运行ServerSocket,这会让我的手机保持低功耗吗?在我看来,每次发送信标ID时,选项1)都会将手机充满无线电,但在此之后,手机将重新进入低功耗/睡眠模式,这将节省电池电量。 2)另一方面会阻止手机进入睡眠模式,因为我必须保持与服务器的持久连接。

1 个答案:

答案 0 :(得分:1)

我会选择选项一,因为它更简单,更不易碎。如果你真的担心电池,只要限制它与服务器通话的频率(例如每小时10次),这样就不会发疯了。

其他东西可能会更多地使用电池,所以先测试并确保这确实需要优化。例如,在后台运行此操作10小时,看看它耗尽了多少充满电的电池与应用未向服务器报告的时间。如果它只有百分之几,那么它可能足够有效。