我有一个使用蓝牙SPP(RFCOMM)与硬件进行通信的应用程序。该应用程序和蓝牙连接效果很好。问题是启动了另一个也使用SPP的应用程序,然后其中一个应用程序停止了。一旦通过退出应用程序或使用任务终止程序停止了其中任何一个应用程序,手机的速度就会几乎停止。大多数时候,我不得不拉电池。
我已经在使用SPP的Pandora和我的应用程序中看到了这一点,Pandora可能是其Ford Sync支持的一部分。我在SPP的示例应用程序中也看到了这一点。我使用哪个应用都没有关系。使用SPP的任何两个应用都会导致此。
我已经在ATT的HTC设备Android 2.1上看到了这一点。我在运行2.2.1版本的Motorola Droid上没有看到此消息,但是在运行带有自定义内核的2.2和LFY 1.95 ROM的同一部手机上却看到了此消息。
如果有人需要查看调试器的日志,那么我什么也没看到,指出了问题所在。一旦两个SPP应用程序停止,速度就会立即开始降低。我仍然收到日志,但是什么也没有显示出问题。重启手机后,减速才会停止。
最佳答案
好的,我将把这个问题归咎于HTC。好像运行Android 2.1的HTC设备具有非常多的蓝牙堆栈。 HTC论坛上有很多关于蓝牙问题的投诉。
通过将我的应用程序推送到后台时关闭我的SPP连接,然后在我的应用程序启动后重新启动SPP连接,我无法解决此问题。
我不想这样做,因为即使应用程序在后台,我的应用程序的未来版本也将需要SPP连接。我只是希望HTC在实施此功能之前先修复其错误软件。
如果有人对HTC的越野车蓝牙堆栈有更多的了解,并且HTC设备无法处理1个以上的SPP连接,请发布。
关于android - Android的多个SPP/RFCOMM连接导致大量减速,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4856099/