无法在 Android phone 和 PC 之间建立客户端服务器蓝牙串行连接

Unable to make client server Bluetooth serial connection between Android phone and PC

根据我的研究,这很可能是由于 UUID 错误或因为我的 PC 不支持 SPP。

我的SG4作为服务器,PC作为客户端。 当我使用标准串行 UUID 时,我的 android 代码从不在 .connect().

之后执行

我想我已经通过以下操作修复了它:mmDevice.getUuids() 然后使用其中一个 UUID。是的,它已经执行了进一步的代码。但是,后来我发现它并没有设置串行连接而是一些不同的连接。

代码:

 // ParcelUuid[] list = mmDevice.getUuids();
 // UUID uuid = UUID.fromString(list[0].toString());
 UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); //Standard SerialPortService ID
 mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid);
 mmSocket.connect();
 mmOutputStream = mmSocket.getOutputStream();

数组 list 包含这些 UUID:

00001105-0000-1000-8000-00805f9b34fb
00001106-0000-1000-8000-00805f9b34fb
0000111b-0000-1000-8000-00805f9b34fb
00001115-0000-1000-8000-00805f9b34fb

这是否意味着我的 PC 不支持串行连接或什么?我正在使用 windows 8.

支持串行连接的 SPP 配置文件与您的操作系统无关,而是与您 PC 中安装的蓝牙模块有关。

知道你的系统是Windows8,我猜你的电脑比较新,所以肯定是新的不支持SPP的蓝牙模块。

您仍然可以使用带有 SPP 配置文件的外部蓝牙 USB 加密狗,例如华硕蓝牙 bt 211。

PC 和 Android 设备通常不会通告 SPP 服务配置文件,直到之前使用配对的远程设备或本地应用程序正确建立它。这是有道理的,因为当未知数据流开始以无线方式传入时,PC 或 Android 不知道该怎么办。

PC 与 SPP 设备配对后,通常会分配一个虚拟 COM 端口。有时,在打开 COM 端口之前,SPP 服务不会启用。

一个Android设备需要一个应用程序来打开SPP服务,并注册监听器。