Mah*_*hir 11 android bluetooth
目标:
我正在尝试让我的Android服务自动连接到已配对的蓝牙设备,当它在其范围内时.
例:
我的iphone与我的车配对了.当我坐在车里时,音乐开始自动播放.我不需要再连接它.我不需要开一首歌.它只是启动itunes并开始播放音乐.我想在我的Android应用程序中使用这种连接.
一个明显的解决方案是让一个线程在后台服务中运行,尝试每X秒连接一次.然而,由于电池寿命的影响,这不是最佳的.
我尝试设置广播接收器以触发,ACTION_ACL_CONNECTED但这似乎只有在我连接到设备后才被调用.
当手机走进设备的范围时,我的应用程序是否无法收到通知?
过去两天我花了很多时间试图让这个没有运气.有关于如何连接到bt设备的十亿个教程,但是在范围内没有自动连接.开始质疑这是否可能..如果不是,我会被吹走:(
相关问题:
据我所知,只要它在范围内就无法自动连接到通用蓝牙设备.您最好的选择是进行查询循环,定期查询可用设备并连接到您所绑定的设备(尽管如您所说,这是相当耗电的).
但是,如果您的设备(手机和外围设备)都支持蓝牙4.0(LE)以及GATT,您可以使用connectGatt方法,该方法会在设备可用时立即自动连接(同样,尽管不太确定电池含义,但到目前为止,我所做的有限测试表明它并不重要.
我不完全确定connectGatt当设备是非GATT时的行为是什么,但它可能值得调查 - 我的猜测是GATT_FAILURE当设备进入范围但不支持GATT时你会收到状态回调(这个至少会告诉你什么时候连接).
如果您在非LE /非GATT设备上找到解决方案或调查此方法的行为,请更新您的问题,因为我很想知道更多相关信息.
| 归档时间: |
|
| 查看次数: |
23311 次 |
| 最近记录: |