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

标签 java android bluetooth

根据我的研究,这很可能是由于错误的 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/

相关文章:

java - 使用正则表达式从 FASTA 中提取 DNA

java - 如何在编码时为属性添加前缀

android - 在 ActionBar 上添加阴影

android - 如何在不在线的情况下发送通知?

ios - 在 SWIFT 中断开 BLE 外设

java - 蓝牙 LE 在暂停时断开连接

java - 如何扫描类中的自定义注释?

java - elasticsearch NodeBuilder vs TranportClient

android - 当调用 putExtra() 时内存方面会发生什么?

iOS 8 使用外部 GPS