无法在Android手机和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中安装的蓝牙模块有关。

知道您的系统是Windows 8,我想您的PC是相对新的,因此肯定会带来不支持SPP的新蓝牙模块。

您仍然可以使用外部蓝牙USB加密狗,该蓝牙配置文件如Asus Bluetooth Bt211。

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

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

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

最新更新