Android:获取蓝牙SDP服务名称

时间:2014-10-21 01:29:03

标签: android bluetooth sdp

Android蓝牙API允许您使用以下方式注册SDP服务:

String BLUETOOTH_NAME="MyBluetoothService";
mAdapter.listenUsingRfcommWithServiceRecord(BLUETOOTH_NAME, UUID.fromString(uuid));

它还允许您在远程蓝牙设备上启动服务Discovey以查找活动服务UUID列表:

device.fetchUuidsWithSdp();

但是,似乎没有任何公共方法可用于获取服务名称。可以通过其他方式获得吗?

1 个答案:

答案 0 :(得分:3)

我想你想获得设备上运行的服务的名称,就像你在linux盒子上一样

sdptool浏览本地| egrep"服务名称:"

所以答案是否定的,因为没有Android API方法,并且sdptool不在Android上。

但是,您可以使用NDK编写包含相应函数的c库,并通过JNI调用该函数(请参阅http://people.csail.mit.edu/rudolph/Teaching/Articles/BTBook.pdf上的第一个程序员蓝牙。)

顺便说一下:为什么要按名称而不是UUID列出服务。根据我的经验,服务名称与实施略有不同,而UUIDS是可信的。