最近项目需要做蓝牙连接蓝牙秤设备,获取称重数据,然后就去研究了下蓝牙相关知识,看过一堆一堆的博客文章,然后开始写,依然踏了很多的坑,自己各种办法试了又试,终于完善得差不多了,然后现在项目做完了有空就写下博客记录下。
对于蓝牙通信方面,比如蓝牙聊天,其实跟蓝牙连接蓝牙秤差不多。如果是app连接蓝牙秤,比手机连接手机聊天少了那么一两个步骤。其实可以这么理解,手机蓝牙连接蓝牙外设备(非手机),那么就是将外设备作为服务器,手机作为客户端来进行连接。如果是手机和手机蓝牙聊天,那么双方都是作为服务器和客户端,手机A和B,A作为服务器给B发送消息,B作为客户端进行接收;同理A接收B的消息的时候,B是服务器给A发送消息,A作为客户端来接受。一个发送一个接收,蓝牙通信就是这样的,那么主要的两个操作就是刚刚说的,如果需要发送功能,那么就需要自己作为服务器,主要方法就是执行socket.accept()来连接客户端,给客户端发送消息;如果需要接受数据的功能,那么需要自己作为客户端,主要方法就是执行socket.connect()来连接服务器,接收服务器的消息。
所以其实蓝牙通信主要就是上面说的两个方面,一个是接收消息,一个是发送消息;主要进行的两个操作就是accept()和connect(),其他的什么开启蓝牙,检测蓝牙是否开启,扫描附近蓝牙等都是次要的,也比较简单。
对于简单的蓝牙检测,开启,扫描等我就贴核心代码简略说下了。
正常的操作应该是:
1.检测手机是否支持蓝牙,支持的话,如果蓝牙没开启就开启蓝牙,如果不支持弹出提示
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); //获取蓝牙适配器
if (bluetoothAdapter != null) { //有蓝牙功能
if (!bluetoothAdapter.isEnabled()) { //蓝牙未开启
new Thread(new Runnable() {

(检测蓝牙、开启蓝牙、扫描附近蓝牙设备)&spm=1001.2101.3001.5002&articleId=52946725&d=1&t=3&u=38169eb64d4540fd948d6db82e42bc5c)
490

被折叠的 条评论
为什么被折叠?



