2

我正在开发一个与服务器实时通信的录音应用程序,因此需要持续的 Internet 连接。我在 info.plist 中包含了 UIRequiresPersistentWiFi,并且在应用程序处于活动状态时还禁用了设备进入睡眠状态。但是,可以理解的是,这会对设备的电池寿命产生严重影响。用户最终不得不将其持续插入。对于一个被吹捧为旨在取代手持录音机的应用程序,这是一个严重的缺点。我的应用程序还有许多从 iPhone 发送到服务器的 xml 线程,因此无线连接至关重要。

我的问题是: 1. 是否可以仅在会话期间需要时以某种方式打开 UIRequiresPersistentWifi 状态。例如,这是否可以仅在传输或 xml 更新到服务器期间打开,而在其他时间关闭?2. 同样,可以在会话期间以编程方式随意启用和禁用 IdleTimer。例如,仅当设备上没有运行前台或后台任务时才启用 idletimer。

还有其他建议可以确保正常的电池寿命吗?我所有的用户都将使用 iTouch 4 或 iPhone 4。

任何帮助/建议将不胜感激。

4

2 回答 2

1

我的建议是不要与服务器持续通信,对不起:(

是否可以将大块数据缓存到手机上的文件中,并在一次大爆发中定期将大块传输到服务器?XML 也一样。或者您的应用真的需要实时广播吗?

据我所知,如果你指定了 UIRequiresPersistentWifi,你就会坚持下去:(

对不起,可能不是你想要的答案!

于 2011-01-06T00:02:13.940 回答
1

对第 2 部分的回答:是的,您可以根据用户或应用程序正在做什么以及已经使用了多长时间来启用和禁用空闲计时器。我知道有几个应用程序会禁用空闲计时器,但如果用户在 10 分钟内没有触摸任何 UI 元素,则会重新启用它,但如果用户再次开始一些长时间的操作,则会重新禁用它。等等

第 1 部分的部分答案:使用无线电(发送 wifi 数据)需要电源。节省电量的一个好方法是尽可能长时间地不发送数据。可能会在设备上缓存大量数据,稍后尝试突发上传。

于 2011-01-06T06:05:43.273 回答