Android蓝牙API允许您使用以下方式注册SDP服务:
String BLUETOOTH_NAME="MyBluetoothService";
mAdapter.listenUsingRfcommWithServiceRecord(BLUETOOTH_NAME, UUID.fromString(uuid));
它还允许您在远程蓝牙设备上启动服务Discovey以查找活动服务UUID列表:
device.fetchUuidsWithSdp();
但是,似乎没有任何公共方法可用于获取服务名称。可以通过其他方式获得吗?
答案 0 :(得分:3)
我想你想获得设备上运行的服务的名称,就像你在linux盒子上一样
sdptool浏览本地| egrep"服务名称:"
所以答案是否定的,因为没有Android API方法,并且sdptool不在Android上。
但是,您可以使用NDK编写包含相应函数的c库,并通过JNI调用该函数(请参阅http://people.csail.mit.edu/rudolph/Teaching/Articles/BTBook.pdf上的第一个程序员蓝牙。)
顺便说一下:为什么要按名称而不是UUID列出服务。根据我的经验,服务名称与实施略有不同,而UUIDS是可信的。