小编Fre*_*cus的帖子

Android和其他设备之间的蓝牙SPP,UUID和PIN问题

我正在尝试实施一个Android应用程序来接收来自医疗设备的数据,但我无法完成发现过程并让手机与设备配对或相互连接.

描述医疗设备: 设备正在使用服务发现协议(SDP)和串行端口配置文件(SPP).它启动一个查询程序,用匹配的COD过滤器和服务名称发现(最多10个)周围的接入点.然后通过检查PIN顺序建立与接入点的连接(使用Page Procedure).匹配PIN后,将上载数据.上传数据后,设备等待确认.decice是主人并启动通信.

我无法控制医疗设备.我所能做的就是启动它并等待上述程序(测量后).

Android应用程序: 我从开发人员页面上的蓝牙聊天示例开始.到目前为止,我已将UUID替换00001101-0000-1000-8000-00805f9b34fb为使用SPP并将服务名称设置为适当的名称.通过从计算机检查服务,我可以确认这似乎是正确的.由于医疗设备是接收和启动通信的设备,我的服务正在使用a BluetoothServerSocketaccept()方法开始收听它.

  1. 在开发者页面中,我读过UUID必须在尝试通信的应用程序之间匹配.由于我无法为医疗设备设置任何UUID,我想知道这是否会成为一个问题,或者医疗设备是否足够使用SP配置文件?

  2. 如果服务名称和UUID正确并且医疗设备实际上会尝试连接到正在侦听连接的蓝牙服务,那么Android系统是否会提示我手动输入PIN以便能够配对设备(因为医疗设备)有预先设定的PIN码?

  3. 我还没有在Android SDK API中找到任何可以为我的蓝牙服务设置PIN的内容(如果这是失败的话),这可能吗?

我已经读过,通常现在系统会生成PIN,并且只需要用户确认.我想不在我的系统中,因为设备有点老了.

如果你想分享一些与我上面描述的相关的知识,提示和猜测,我会很高兴!

先谢谢Fredrik


编辑:

现在我已将设备与bluegiga盒配对,并且它们正确通信.现在我正在寻找满足血压设备连接到手机的标准.我可以从Linux计算机(sdptool search SP在终端中)检查bluegiga提供的蓝牙服务,并将其与我在Android上提供的蓝牙服务进行比较.这些值是我得到的:

〜$ sdptool搜索SP

查询 ...

在8C上搜索SP:71:F8:E5:XX:XX...

服务名称:1808130054

Service RecHandle:0x10003

服务类ID列表:

UUID 128:00001101-0000-1000-8000-00805f9b34fb

协议描述符列表:

"L2CAP"(0x0100)

"RFCOMM"(0x0003)

频道:13

"

在00:07:80:88:XX:XX上搜索SP...

服务名称:1808130054

服务说明:1808130054

Service RecHandle:0x10005

服务类ID列表:

"串口"(0x1101)

协议描述符列表:

"L2CAP"(0x0100)

"RFCOMM"(0x0003)

频道:12

语言库Attr列表:

code_ISO639:0x656e

enconding:0x6a

base_offset:0x100

找到的第一个设备是手机(mac = 8C:71 ... Google Nexus S),第二个设备(mac = 00:07 ...)是bluegiga.我注意到Android设备上没有服务描述.我认为最重要的区别在于服务类ID列表.Android上的UUID 128,但在bluegiga上有一个完全不同的格式描述. …

android serial-port bluetooth

20
推荐指数
1
解决办法
5万
查看次数

标签 统计

android ×1

bluetooth ×1

serial-port ×1