Qt/QML本身在做GUI界面工程时,除了各种界面上的按钮、图片、工具条等元素之外,最方便的就是可以通过C++实现界面各种复杂逻辑,而实现上不可避免就需要一些外部库的支持,不管是静态库.a还是动态库.so,比如蓝牙模块。
而QML/C++启动一个蓝牙协议栈SDK作为一个进程,然后启动一个共享设备文件进行通讯,上层应用读共享文件,可以获得蓝牙协议栈要上报的状态、事件等信息,需要通过蓝牙传递信息时,可以发送AT command到这个文件。在车机使用蓝牙电话时中,比如使用的一些hfp(hand-free profile),而音轨数据会发送到linux alsa驱动去处理。也可以有其他的profile,比如:
A2DP(Advanced Audio Distribution Profile):传送或接收高质量音频内容。蓝牙立体声,和蓝牙耳机听歌有关
AVRCP(Audio Video Remote Control Profile):控制A/V设备;暂停、停止、开始播放、上下歌曲选择等&#x