2014-10-21 4 views
0

В API Android Bluetooth позволяет зарегистрировать услугу SDP с помощью:Android: Получить Bluetooth SDP Service Name

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

Она также позволяет инициировать услугу Discovey на удаленном устройстве Bluetooth, чтобы найти список активных

device.fetchUuidsWithSdp(); 

Однако, как представляется, не будет какой-либо публичный метод доступен, чтобы получить имя службы: служба UUID-х. Может ли он быть приобретен другими способами?

ответ

3

Я полагаю, вы хотите, чтобы получить имена сервисов, запущенных на устройстве, как вы могли бы сделать на коробке Linux с

sdptool просмотреть местные | egrep "Service Name:"

Так что ответа нет, так как нет метода Android API, а sdptool не находится на android.

Однако вы можете написать библиотеку c, содержащую соответствующую функцию, используя NDK и вызвать функцию через JNI (см. Bluetooth для программистов для первого на http://people.csail.mit.edu/rudolph/Teaching/Articles/BTBook.pdf).

К слову: почему вы хотите перечислить службы по имени, а не по UUID. По моему опыту, имена служб немного отличаются от реализаций, в то время как UUIDS заслуживают доверия.

+0

Привет, спасибо за ваш ответ. Я хочу сделать это так, потому что я хочу использовать имя службы для передачи дополнительной информации (как и записи TXT в общем сетевом сценарии) –

Смежные вопросы