2012-05-27 48 views
0

我正在与蓝牙嵌入式设备进行接口连接,并且我希望在android手机到达时自动重新连接。到目前为止,它已经解决了几个问题。我还注意到,虽然手机在accept()调用socket时被阻塞,但它仍然消耗相当多的电力。没有什么可以与汽车扬声器电话比较,似乎并没有太多影响电池。我想知道人们是否有任何诡计能够更加友好?降低蓝牙服务器的功耗(accept)

此外,目前接受工程AcceptThread.run(如在蓝牙聊天的例子),但不是在服务。我应该将它移动到一个吗?任何指向如何接受一个服务,并将其移动到线程/活动的指针将不胜感激。

回答

1

Accept(AcceptThread)代码在服务或活动/应用程序中将完全相同。您是否应该将其移入服务取决于您是否需要它在应用程序关闭后继续运行。如果您不需要将其移动到服务中,那么请不要打扰,因为这会让您的应用程序的结构和生命周期变得更加复杂。

我很惊讶你的观察,接受导致功耗增加。当你创建一个套接字并调用accept时,Android会将你的UUID添加到可用的蓝牙服务列表中 - 它不会将蓝牙无线电设置为不同的模式,那为什么会导致功耗增加?

+0

我也不知道为什么会导致更多的权力消耗...但显然我并不孤单:http://farwestab.wordpress.com/tag/serial-port-profile/ – zmashiah