有人知道任何(免费)工具可以帮助创建/编辑蓝牙的 SDP(服务发现)记录吗?
首选基于 Windows 的工具。
You can use my 32feet.NET library. There's no UI for this but there's library code which could be easily used for this. Use class ServiceRecordBuilder. Some docs at Creating Records. For example:
ServiceRecordBuilder bldr = new ServiceRecordBuilder();
bldr.AddServiceClass(BluetoothService.SerialPort);
bldr.ServiceName = "Alan's SPP service";
bldr.AddBluetoothProfileDescriptor(BluetoothService.AVRemoteControl, 1, 0);
bldr.AddCustomAttribute(new ServiceAttribute(0x8001,
ServiceElement.CreateNumericalServiceElement(ElementType.UInt16, 0xFEDC)));
//
ServiceRecord record = bldr.ServiceRecord;
//
var txt = ServiceRecordUtilities.Dump(record);
Console.WriteLine(txt);
//
var byteArr = record.ToByteArray();
var txtBA = BitConverter.ToString(byteArr);
Console.WriteLine(txtBA);
Output is:
ElementSequence
ElementSequence
Uuid16: 0x100 -- L2CapProtocol
ElementSequence
Uuid16: 0x3 -- RFCommProtocol
UInt8: 0x0
( ( L2Cap ), ( Rfcomm, ChannelNumber=0 ) )
AttrId: 0x0006 -- LanguageBaseAttributeIdList
ElementSequence
UInt16: 0x656E
UInt16: 0x6A
UInt16: 0x100
AttrId: 0x0009 -- BluetoothProfileDescriptorList
ElementSequence
ElementSequence
Uuid16: 0x110E -- AVRemoteControl
UInt16: 0x100
AttrId: 0x0100 -- ServiceName
TextString: [en] 'Alan's SPP service'
AttrId: 0x8001
UInt16: 0xFEDC
array:
35-51-09-00-01-35-03-19-11-01-09-00-04-35-0C-35-03-19-01-00-35-05-19-00-03-08-00-09-00-06-35-09-09-65-6E-09-00-6A-09-01-00-09-00-09-35-08-35-06-19-11-0E-09-01-00-09-01-00-25-12-41-6C-61-6E-27-73-20-53-50-50-20-73-65-72-76-69-63-65-09-80-01-09-FE-DC
BlueZ 是 linux 蓝牙堆栈,它带有 sdptool 实用程序,用于与 SDP 一起工作。这个页面有一些例子,http://alanjmcf.wordpress.com/2011/08/09/bluez-sdptool-usage-notes/