蓝牙在多平台下的编程实现
最近在做蓝牙的一些项目记录一下,方便自己也方便大家查阅。实现多平台下的蓝牙通讯。说一下项目背景:蓝牙设备要用在windowsPC上一般在indows上进行蓝牙编程的实例很多,不过大多数是使用串口的方式实现的,因为使用串口需要用户去选择当前蓝牙设备虚拟的是第几个串口,并且遇到一些虚拟串口一直增长的问题。对客户的使用上很不友好,所以改用socket的方式进行通讯。
智能手机日渐普及,Android手机对蓝牙的支持也是十分的完善,但是这个项目是基于以前的库进行做的,想最大限度的复用windows上的代码,当时有两种方案:1、使用java重写底层的库。2、在Android上使用C、C++进行开发上层直接调用。(有的朋友可能会问直接将底层的代码使用NDK交叉编译一下在Android上直接调用也可以实现代码复用,因为和蓝牙通讯必须要有一个通讯管道,如果直接NDK编译原来代码,Android上层创建的Socket管道怎样能传入到底层并能使底层代码使用,底层通讯使用的是串口。所以就直接使用C、C++在底层创建socket管道直接代替串口通讯,在Android上层只需要调用函数并不需要复杂的逻辑。)
在下面的文章中我会详细的介绍在windows、linux和Android下开发语言使用C、C++,开发技术采用 socket的方式实现。首先介绍一下windows上使用socket蓝牙编程的实现,串口就不多说了网上有很多的实例和文章。