Android:wifi和蓝牙一起搜索

目前我有一个关于一起使用Android Wifi,蓝牙API的问题。

(请注意,这是应用程序开发中的问题,而不是普通的用户指南)

搜索设备'通过Wifi同时通过蓝牙搜索设备时遇到问题。

欲了解更多信息:

  • 在wifi搜索上,我使用了Bonjour协议(苹果的Zeroconf实现,可以帮助定位本地网络设备提供的服务)。 我使用的Java工具是jmdns。 在搜索会话期间,我创建了一个MulticastLock以接收Bonjour的多播包。

  • 在蓝牙搜索,我只需使用BluetoothAdapter和BroadcastReceiver一起获取蓝牙设备信息。

  • 搜索结果出现问题时,只要同时执行两次以上搜索会话,Bonjour(Wifi)搜索的搜索结果就没有像仅在执行搜索时那样获得足够的搜索结果。

    例如:当与蓝牙一起搜索时,Bonjour搜索仅获得1而不是2个设备的服务。 然而,蓝牙搜索结果总是足够的。

    这被尝试了很多次,我肯定确认没有任何事情与网络的力量问题有关。

    有没有人遇到过这个问题呢?

    即使你的情况是关于使用Wifi和蓝牙,任何经验或客人都对我非常有帮助!

    科伊。


    我正在做与你正在做的很相似的事情。 我的经验不同之处在于:

  • 我不使用蓝牙发现,因为我知道我要连接到什么设备。 我只是启动客户端连接。
  • 我使用Asynctasks进行后台操作。 你在用什么?

  • 两个可能的问题:

  • 由于Android错误实现,多个Asynctasks不能并行执行 。 将我的Android API目标设置为最新的SDK后,我遇到了类似的错误(因为这是最佳实践)。 现在,在API13之后,Android Asynctask实现改变了,并且任务并没有被并行执行(所以我的wifi线程从未开始,例如,如果蓝牙线程正在运行!!!)。 解决方法是放置几行代码,使默认执行程序再次平行,或仅使用API​​11或更低版本作为目标版本。 查看这个线程的详细信息。

  • 过度空气之间的干扰2 。 就我所知,蓝牙发现是您可以在蓝牙上执行的最昂贵的操作。 所以2.4GHz的多用途芯片可能会被空中淹没。 在内部它有WiFi和BT共存。 记住2.4GHz重叠的WiFi和蓝牙信道。 因此,我所说的在同一时间在同一主频率上进行发现可能不会那么好 。 你应该调查...

  • 链接地址: http://www.djcxy.com/p/63451.html

    上一篇: Android: wifi & bluetooth searching together

    下一篇: connecting an iOS app to adhoc wifi network