Java 在android中识别android蓝牙设备

Java 在android中识别android蓝牙设备,java,android,bluetooth,android-4.0-ice-cream-sandwich,Java,Android,Bluetooth,Android 4.0 Ice Cream Sandwich,我正在做android api 15级的蓝牙应用程序,我想用蓝牙连接远程设备。我使用fetchUUIDSWithDP()获取UUID。我得到的UUID适用于所有其他设备,如诺基亚、pc,但不适用于android设备 来自Doucment FetchUUIDSWithDP()。//此API是异步的,将发送操作\u UUID意图,远程端支持UUID。如果在获取SDP记录时出错,或者如果该过程需要很长时间,则将使用缓存中当前存在的UUID发送ACTION_UUID intent。如果不执行服务发现,客

我正在做android api 15级的蓝牙应用程序,我想用蓝牙连接远程设备。我使用fetchUUIDSWithDP()获取UUID。我得到的UUID适用于所有其他设备,如诺基亚、pc,但不适用于android设备

来自Doucment

FetchUUIDSWithDP()。//此API是异步的,将发送操作\u UUID意图,远程端支持UUID。如果在获取SDP记录时出错,或者如果该过程需要很长时间,则将使用缓存中当前存在的UUID发送ACTION_UUID intent。如果不执行服务发现,客户端应使用getUuids()获取UUID

在docs的“客户端应该使用getUUID()”中,我的问题是,如何识别UUID是来自其他设备还是来自android?

你不能

摘自:“UUID的意义在于它足够大,您可以选择任何随机项,并且不会发生冲突。”

除了串行端口配置文件(SPP)的UUID
00001101-0000-1000-8000-00805F9B34FB
,由于上述原因,没有已知的UUID

0x1101
是串行端口配置文件的ID-这就是UUID以
00001101
开头的原因。因此,您显然能够识别其他设备支持的配置文件(这是SDP的首要原因)。您可以尝试查看设备ID(DID)配置文件,看看是否有任何东西可以用来检测另一方的制造商

关于您没有从Android设备获得任何UUID:确保这些设备通过蓝牙(例如网络访问)实际提供至少一项服务-然后您应该获得一个UUID,该UUID以网络访问配置文件(例如PAN)的ID开始

getUuids()和FetchUUIDSWithDP()之间的区别在于,与docs状态一样,后者实际上向另一个设备执行SDP请求,而前者只返回最后一次响应时获取的响应(最常见的是使用Bluetooth 2.1+发现时接收的响应)。

您不能

摘自:“UUID的意义在于它足够大,您可以选择任何随机项,并且不会发生冲突。”

除了串行端口配置文件(SPP)的UUID
00001101-0000-1000-8000-00805F9B34FB
,由于上述原因,没有已知的UUID

0x1101
是串行端口配置文件的ID-这就是UUID以
00001101
开头的原因。因此,您显然能够识别其他设备支持的配置文件(这是SDP的首要原因)。您可以尝试查看设备ID(DID)配置文件,看看是否有任何东西可以用来检测另一方的制造商

关于您没有从Android设备获得任何UUID:确保这些设备通过蓝牙(例如网络访问)实际提供至少一项服务-然后您应该获得一个UUID,该UUID以网络访问配置文件(例如PAN)的ID开始


getUuids()和FetchUUIDSWithDP()之间的区别在于,就像docs状态一样,后者实际执行对另一个设备的SDP请求,而前者只返回最后一次响应时获取的响应(最常见的是使用Bluetooth 2.1+发现时接收的响应)。

感谢您的回复,我想知道何时使用getUuid()对于android bluetooth设备?,我如何从bluetooth设备对象知道它是android设备还是其他设备?正如我所说,您无法从bluetooth设备知道远程设备是否为android设备。具体来说,getUuid()也没有帮助。我可以使用getUuid()从设备获取本地缓存的UUID,而不调用FetchUUIDSWithDP()?如果远程设备符合Bluetooth 2.1,您可能会通过getUuid()获取UUID,而无需调用FetchUUIDSWithDP()。但无论如何,如果远程设备是Android设备,您可能无法从UUID列表中了解到。感谢您的回复,我想知道何时对Android蓝牙设备使用getUuid(),如何从BluetoothDevice对象中知道它是Android设备还是其他设备?正如我所说,你无法从蓝牙设备上知道远程设备是否是Android。具体来说,getUuid()也没有帮助。我可以使用getUuid()从设备获取本地缓存的UUID,而不调用FetchUUIDSWithDP()?如果远程设备符合Bluetooth 2.1,您可能会通过getUuid()获取UUID,而无需调用FetchUUIDSWithDP()。但是无论如何,如果远程设备是Android设备还是非Android设备,您可能无法从UUID列表中了解到。