根据我的研究,这很可能是由于错误的 UUID 或因为我的电脑不支持 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
这是否意味着我的电脑不支持串行连接还是什么?我使用的是 Windows 8。
最佳答案
支持串行连接的SPP配置文件与您的操作系统无关,而是与您的PC中安装的蓝牙模块有关。
知道您的系统是 Windows 8,我猜您的电脑相对较新,因此肯定配备了不支持 SPP 的新蓝牙模块。
您仍然可以使用带有 SPP 配置文件的外部蓝牙 USB 适配器,例如华硕蓝牙 bt 211。
关于java - 无法在 Android 手机和 PC 之间建立客户端服务器蓝牙串行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30002534/