Android 平台上蓝牙开发的关于 UUID 设置的注意事项

原创 2012年05月24日 18:00:00

由于 Android 蓝牙的通信都需要用到 UUID,如果由手机发起搜索,当搜索到电脑的蓝牙时,能够得到蓝牙的地址(address),但通信时需要得到 BluetoothSocket,而 BluetoothSocket 则需要电脑蓝牙的 UUID,请问这个是怎么样得到的呢?

在蓝牙中,每个服务和服务属性都唯一地由"全球唯一标识符" (UUID)来校验。正如它的名字所暗示的,每一个这样的标识符都要在时空上保证唯一。UUID 类可表现为短整形(16 或 32 位)和长整形(128 位)UUID。它提供了分别利用 String 和 16 位或 32 位数值来创建类的构造函数,提供了一个可以比较两个 UUID(如果两个都是 128 位)的方法,还有一个可以转换一个 UUID 为一个字符串的方法。UUID 实例是不可改变的(immutable),只有被 UUID 标示的服务可以被发现。
 

在 Linux 下你用一个命令 uuidgen -t 可以生成一个 UUID 值;在 Windows 下则执行命令 uuidgen 。UUID 看起来就像如下的这个形式:2d266186-01fb-47c2-8d9f-10b8ec891363。当使用生成的 UUID 去创建一个 UUID 对象,你可以去掉连字符。

 

我搞定了电脑和 Android 手机的蓝牙通信问题。
首先解答几个问题
1. 两边的 UUID 必须是一样的,这是一个服务的唯一标识,而且
这个 UUID 的值必须是
00001101-0000-1000-8000-00805F9B34FB
为什么呢?因为这个是 Android 的 API 上面说明的,用于普通蓝牙适配器和 Android 手机蓝牙模块连接的,请大家自己看一下 Android 有关 bluetooth的 API。


2. 在连接的时候,如果电脑作为 server(一直监听是否有服务连接),Android 手机作为 client(主动和电脑建立连接),则需要在手机端调用这样一行代码:mmSocket.connect();
其中 mmSocket 是一个 BluetoothSocket 类,在这句话之前请确定你已经把手机和电脑进行了配对,而且那些乱七八糟的设置都搞定了。

http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html

public BluetoothSocket createInsecureRfcommSocketToServiceRecord (UUID uuid)

Since: API Level 10

Create an RFCOMM BluetoothSocket socket ready to start an insecure outgoing connection to this remote device using SDP lookup of uuid.

The communication channel will not have an authenticated link key i.e it will be subject to man-in-the-middle attacks. For Bluetooth 2.1 devices, the link key will be encrypted, as encryption is mandatory. For legacy devices (pre Bluetooth 2.1 devices) the link key will be not be encrypted. UsecreateRfcommSocketToServiceRecord(UUID) if an encrypted and authenticated communication channel is desired.

This is designed to be used with listenUsingInsecureRfcommWithServiceRecord(String, UUID) for peer-peer Bluetooth applications.

Use connect() to initiate the outgoing connection. This will also perform an SDP lookup of the given uuid to determine which channel to connect to.

The remote device will be authenticated and communication on this socket will be encrypted.

Hint: If you are connecting to a Bluetooth serial board then try using the well-known SPP UUID 00001101-0000-1000-8000-00805F9B34FB. However if you are connecting to an Android peer then please generate your own unique UUID.

Android 平台上蓝牙开发的关于 UUID 设置的注意事项

由于Android蓝牙的通信都需要用到UUID,如果由手机发起搜索,当搜索到电脑的蓝牙时,能够得到蓝牙的地址(address),但通信时需要得到BluetoothSocket,而BluetoothSo...
  • Buaaroid
  • Buaaroid
  • 2014年09月18日 14:54
  • 9475

Android 平台上蓝牙开发的关于 UUID 设置的注意事项

由于Android蓝牙的通信都需要用到UUID,如果由手机发起搜索,当搜索到电脑的蓝牙时,能够得到蓝牙的地址(address),但通信时需要得到BluetoothSocket,而BluetoothSo...
  • u014357995
  • u014357995
  • 2015年05月06日 11:05
  • 727

对Android蓝牙UUID的理解

UUID 先来段百度百科上的解释: UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open...
  • u010164190
  • u010164190
  • 2017年05月06日 14:28
  • 1113

Android BLE 开发心得 UUID获取。

我再网上看了很多关于BLE开发的技术博客已经文章,基本都是翻译Goole的API文档,基本没有解决我的问题,经过我自己的研究我基本解决了手头上的问题。现在我把它分享给大家。 问题1:UUID的获取。...
  • Y_xiaohe1234
  • Y_xiaohe1234
  • 2015年04月15日 10:35
  • 6442

Android各种蓝牙设备的UUID

UUID是“Universally Unique Identifier”的简称,通用唯一识别码的意思。对于蓝牙设备,每个服务都有通用、独立、唯一的UUID与之对应。也就是说,在同一时间、同一地点,不可...
  • wletv
  • wletv
  • 2013年05月21日 21:34
  • 19286

android蓝牙编程 重点知识 SPP A2DP UUID

http://blog.csdn.net/flyfish10000/article/details/5796168 http://blog.csdn.net/xzongyuan/article/de...
  • xzongyuan
  • xzongyuan
  • 2014年09月16日 17:26
  • 4955

蓝牙 UUID 汇总

蓝牙UUID 汇总,蓝牙UUID全,安卓蓝牙UUID
  • XiaoXiaoPengBo
  • XiaoXiaoPengBo
  • 2016年05月14日 14:58
  • 3738

Android各种蓝牙设备的UUID

UUID是“Universally Unique Identifier”的简称,通用唯一识别码的意思。对于蓝牙设备,每个服务都有通用、独立、唯一的UUID与之对应。也就是说,在同一时间、同一地点,不可...
  • Liuqz2009
  • Liuqz2009
  • 2016年08月12日 11:52
  • 1371

android开发之蓝牙配对连接的方法

新年第一篇。 最近在做蓝牙开锁的小项目,手机去连接单片机总是出现问题,和手机的连接也不稳定,看了不少蓝牙方面的文档,做了个关于蓝牙连接的小结。 在做Android蓝牙串口连接的时候一般会使用 ...
  • qq_35114086
  • qq_35114086
  • 2016年08月31日 12:58
  • 1688

(六)相机程序开发

今天我们来讲一下在Android平台上开发相机的问题!Two choices! 第一种使用intent方法来调用系统方法 一般以动作按钮的方式来操作,101仅作为一个标示 [java] vi...
  • languobeibei
  • languobeibei
  • 2016年12月05日 19:16
  • 173
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 平台上蓝牙开发的关于 UUID 设置的注意事项
举报原因:
原因补充:

(最多只允许输入30个字)