ADC Home > Reference Library > Reference > Hardware & Drivers > Bluetooth > Bluetooth Framework Reference

 


IOBluetoothSDPServiceRecord

Inherits from:

NSObject

Declared In:

Overview

An instance of this class represents a single SDP service record.

Discussion

As a service record, an instance of this class has an NSDictionary of service attributes. It also has a link to the IOBluetoothDevice that the service belongs to. The service dictionary is keyed off of the attribute ID of each attribute represented as an NSNumber.



Methods

-getAttributeDataElement:

Returns the data element for the given attribute ID in the target service.

-getAttributes

Returns an NSDictionary containing the attributes for the service.

-getDevice

Returns the IOBluetoothDevice that the target service belongs to.

-getL2CAPPSM:

Allows the discovery of the L2CAP PSM assigned to the service.

-getRFCOMMChannelID:

Allows the discovery of the RFCOMM channel ID assigned to the service.

-getSDPServiceRecordRef

Returns an IOBluetoothSDPServiceRecordRef representation of the target IOBluetoothSDPServiceRecord object.

-getServiceName

Returns the name of the service.

-getServiceRecordHandle:

Allows the discovery of the service record handle assigned to the service.

-hasServiceFromArray:

Returns TRUE if any one of the UUIDs in the given array is found in the target service.

-matchesSearchArray:

Returns TRUE any of the UUID arrays in the search array match the target service.

-matchesUUIDArray:

Returns TRUE if ALL of the UUIDs in the given array is found in the target service.

+withSDPServiceRecordRef:

Method call to convert an IOBluetoothSDPServiceRecordRef into an IOBluetoothSDPServiceRecord *.


getAttributeDataElement:


Returns the data element for the given attribute ID in the target service.

- (IOBluetoothSDPDataElement *)getAttributeDataElement:(BluetoothSDPServiceAttributeID)attributeID; 
Parameters
attributeID

The attribute ID of the desired attribute.

Return Value

Returns the data element for the given attribute ID in the target service. If the service does not contain an attribute with the given ID, then nil is returned.


getAttributes


Returns an NSDictionary containing the attributes for the service.

- (NSDictionary *)getAttributes; 
Return Value

Returns an NSDictionary containing the attributes for the target service.

Discussion

The attribute dictionary is keyed off of the attribute id represented as an NSNumber. The values in the NSDictionary are IOBluetoothSDPDataElement objects representing the data element for the given attribute.


getDevice


Returns the IOBluetoothDevice that the target service belongs to.

- (IOBluetoothDevice *)getDevice; 
Return Value

Returns the IOBluetoothDevice that the target service belongs to. If the service is one the local host is vending, then nil is returned.

Discussion

If the service is a local service (i.e. one the current host is vending out), then nil is returned.


getL2CAPPSM:


Allows the discovery of the L2CAP PSM assigned to the service.

- (IOReturn)getL2CAPPSM:(BluetoothL2CAPPSM *)outPSM; 
Parameters
outPSM

A pointer to the location that will get the found L2CAP PSM.

Return Value

Returns kIOReturnSuccess if the PSM is found.

Discussion

This method will search through the ProtoclDescriptorList attribute to find an entry with the L2CAP UUID (UUID16: 0x0100). If one is found, it gets the second element of the data element sequence and sets the outPSM pointer to it. The PSM value only gets set when kIOReturnSuccess is returned.


getRFCOMMChannelID:


Allows the discovery of the RFCOMM channel ID assigned to the service.

- (IOReturn)getRFCOMMChannelID:(BluetoothRFCOMMChannelID *)rfcommChannelID; 
Parameters
rfcommChannelID

A pointer to the location that will get the found RFCOMM channel ID.

Return Value

Returns kIOReturnSuccess if the channel ID is found.

Discussion

This method will search through the ProtoclDescriptorList attribute to find an entry with the RFCOMM UUID (UUID16: 0x0003). If one is found, it gets the second element of the data element sequence and sets the rfcommChannelID pointer to it. The channel ID only gets set when kIOReturnSuccess is returned.


getSDPServiceRecordRef


Returns an IOBluetoothSDPServiceRecordRef representation of the target IOBluetoothSDPServiceRecord object.

- (IOBluetoothSDPServiceRecordRef)getSDPServiceRecordRef; 
Return Value

Returns an IOBluetoothSDPServiceRecordRef representation of the target IOBluetoothSDPServiceRecord object.


getServiceName


Returns the name of the service.

- (NSString *)getServiceName; 
Return Value

Returns the name of the target service.

Discussion

This is currently implemented to simply return the attribute with an id of 0x0100. In the future, it will be extended to allow name localization based on the user's chosen language or other languages.


getServiceRecordHandle:


Allows the discovery of the service record handle assigned to the service.

- (IOReturn)getServiceRecordHandle:(BluetoothSDPServiceRecordHandle *)outServiceRecordHandle; 
Parameters
outServiceRecordHandle

A pointer to the location that will get the found service record handle.

Return Value

Returns kIOReturnSuccess if the service record handle is found.

Discussion

This method will search through the attributes to find the one representing the service record handle. If one is found the outServiceRecordHandle param is set with the value. The outServiceRecordHandle value only gets set when kIOReturnSuccess is returned.


hasServiceFromArray:


Returns TRUE if any one of the UUIDs in the given array is found in the target service.

- (BOOL)hasServiceFromArray:(NSArray *)array; 
Parameters
array

An NSArray of IOBluetoothSDPUUID objects to search for in the target service.

Return Value

Returns TRUE if any of the given UUIDs are present in the service.

Discussion

The given array should contain IOBluetoothSDPUUID objects. It is currently implemented such that it returns TRUE if any of the UUIDs are found. However in the future, it is likely that this will change to more closely match the functionality in the SDP spec so that it only returns TRUE if all of the given UUIDs are present. That way, both AND and OR comparisons can be implemented. Please make a note of this potential change.


matchesSearchArray:


Returns TRUE any of the UUID arrays in the search array match the target service.

- (BOOL)matchesSearchArray:(NSArray *)searchArray; 
Parameters
array

An NSArray of NSArrays of IOBluetoothSDPUUID objects.

Return Value

Returns TRUE if any of the UUID arrays match.

Discussion

The given array should contain NSArray objects. Each sub-NSArray should contain IOBluetoothSDPUUID objects. In turn, each sub-NSArray gets passed to -matchesUUIDArray: If any of those returns TRUE, then the search stops and TRUE is returned. Essentially the master NSArray contains the OR operations and each sub-array contains the AND operations.

NOTE: This method is only available in Mac OS X 10.2.4 (Bluetooth v1.1) or later.


matchesUUIDArray:


Returns TRUE if ALL of the UUIDs in the given array is found in the target service.

- (BOOL)matchesUUIDArray:(NSArray *)uuidArray; 
Parameters
array

An NSArray of IOBluetoothSDPUUID objects to search for in the target service.

Return Value

Returns TRUE if all of the given UUIDs are present in the service.

Discussion

The given array should contain IOBluetoothSDPUUID objects. It only returns TRUE if all of the UUIDs are found. This method is like hasServiceFromArray: except that it requires that all UUIDs match instead of any of them matching.

NOTE: This method is only available in Mac OS X 10.2.4 (Bluetooth v1.1) or later.


withSDPServiceRecordRef:


Method call to convert an IOBluetoothSDPServiceRecordRef into an IOBluetoothSDPServiceRecord *.

+ (IOBluetoothSDPServiceRecord *)withSDPServiceRecordRef:(IOBluetoothSDPServiceRecordRef)sdpServiceRecordRef; 
Parameters
sdpServiceRecordRef

IOBluetoothSDPServiceRecordRef for which an IOBluetoothSDPServiceRecord * is desired.

Return Value

Returns the IOBluetoothSDPServiceRecord * for the given IOBluetoothSDPServiceRecordRef.


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.

 

Last Updated: 2008-08-07