每一分任务的ID, 16bit, 例如串口通信的发送任务的UUID可设置为0x2, 接收任务的UUID可设置为0x3
ESP32-C3学习笔记(4)——BLE GAP主机端连接(uuid128)https://blog.csdn.net/Mr_VitaminC/article/details/124272506?spm=1001.2014.3001.5502
ESP32-C3学习笔记(5)——BLE GAP主机端连接(根据mac地址)https://blog.csdn.net/Mr_VitaminC/article/details/124272780
ESP32-C3学习笔记(6)——BLE GAP主机端的读、写、no
直接上源码
public static String GetLocalMacAddress() {
BluetoothAdapter btAda = BluetoothAdapter.getDefaultAdapter();
//开启蓝牙
if (btAda.isEnabled() == false) {
if (btAda.enable()) {
while (btAda
什么是蓝牙
蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而使数据传输变得更加迅速高效,为无线通信拓宽道路。
简单说,蓝牙就是一种使用无线电通信的技术去完成设备与设备间通讯与数据交换。 而我们通常使用的那些蓝牙耳机、蓝牙打印机、蓝牙手环、蓝牙鼠标等等设备,都是基于蓝牙通信技术对外提供某种(或
ServiceDiscoveryServerServiceClassID_UUID = '{00001000-0000-1000-8000-00805F9B34FB}'
BrowseGroupDescriptorServiceClassID_UUID = '{00001001-0000-1000-8000-00805F9B34FB}'
PublicBrowseGroupServiceClass
这里只列出重点原理内容,更加细节的内容请阅读前面文章
首先要搞清楚一点,我们在 Android 中通过 SDK 获得的蓝牙广播包是经过底层的 SDK 给我们处理过的,是一个长度为 62 的字节数组。这个长度为 62 的字节数组是怎么来的呢?
想要搞清楚这个问题,首先我们要明白 iBeacon 向外发送的最原始的广播包是什么样的?
首先我们要搞清楚一点,蓝牙在向外发送数据的时候是分成两个部分的一个就是普通的广播包还有一个叫做应答包。这是蓝牙协议的规定内容,针对于所有的蓝牙设备(iBeacon 只是蓝牙设.
首先,需要确保蓝牙权限已在AndroidManifest.xml文件中进行了声明并获得。
其次,可以使用BluetoothAdapter类获取设备的蓝牙适配器实例,并确保蓝牙已启用。
接下来,可以通过调用BluetoothDevice类的方法来获取与目标蓝牙设备相关的对象。这可以通过设备的MAC地址或名称来实现。
然后,可以通过UUID来与目标蓝牙设备进行连接。UUID是一个全局唯一的标识符,用于确保与特定服务或特性的通信。对于不同的应用程序,可以为连接到蓝牙设备的服务或特性分配不同的UUID。
一旦连接建立,可以通过BluetoothSocket类与目标蓝牙设备进行数据传输。可以使用OutputStream类来向蓝牙设备写入数据,使用InputStream类来读取从蓝牙设备接收到的数据。
在连接完成后,应该及时关闭连接以释放资源,并确保在不使用蓝牙设备时将其禁用。
总结起来,要通过UUID连接Android蓝牙设备,需要获取蓝牙适配器实例,获取目标蓝牙设备对象,使用UUID连接设备,通过BluetoothSocket进行数据传输,并及时关闭连接。这些步骤可以帮助实现Android与蓝牙设备之间的无线通信。