CapabilityFilter

com.connectsdk.discovery.CapabilityFilter

CapabilityFilter is an object that wraps a List of required capabilities. This CapabilityFilter is used for determining which devices will appear in DiscoveryManager’s compatibleDevices array. The contents of a CapabilityFilter’s array must be any of the string constants defined in the Capability Class constants.

CapabilityFilter values

Here are some examples of values for the Capability constants.

  • MediaPlayer.Display_Video = “MediaPlayer.Display.Video”
  • MediaPlayer.Display_Image = “MediaPlayer.Display.Image”
  • VolumeControl.Volume_Subscribe = “VolumeControl.Subscribe”
  • MediaControl.Any = “MediaControl.Any”

All Capability header files also define a constant array of all capabilities defined in that header (ex. kVolumeControlCapabilities).

AND/OR Filtering

CapabilityFilter is an AND filter. A ConnectableDevice would need to satisfy all conditions of a CapabilityFilter to pass.

The DiscoveryManager capabilityFilters is an OR filter. a ConnectableDevice only needs to satisfy one condition (CapabilityFilter) to pass.

Examples

Filter for all devices that support video playback AND any media controls AND volume up/down.

List<String> capabilities = new ArrayList<String>();
    capabilities.add(MediaPlayer.Display_Video);
    capabilities.add(MediaControl.Any);
    capabilities.add(VolumeControl.Volume_Up_Down);

CapabilityFilter filter =
    new CapabilityFilter(capabilities);
DiscoveryManager.getInstance().setCapabilityFilters(filter);

Filter for all devices that support (video playback AND any media controls AND volume up/down) OR (image display).

CapabilityFilter videoFilter =
    new CapabilityFilter(
        MediaPlayer.Display_Video,
        MediaControl.Any,
        VolumeControl.Volume_Up_Down);

CapabilityFilter imageFilter =
    new CapabilityFilter(
        MediaPlayer.Display_Image);

DiscoveryManager.getInstance().setCapabilityFilters(videoFilter, imageFilter);

Properties

List<String> capabilities = new ArrayList<String>()

List of capabilities required by this filter. This property is readonly use the addCapability or addCapabilities to build this object.

Methods

CapabilityFilter ()

Create an empty CapabilityFilter.

CapabilityFilter (String… capabilities)

Create a CapabilityFilter with the given array of required capabilities.

Parameters:

  • capabilities – Capabilities to be added to the new filter

CapabilityFilter (List<String> capabilities)

Create a CapabilityFilter with the given array of required capabilities.

Parameters:

  • capabilities – List of capability names (see capability class files for String constants)

void addCapability (String capability)

Add a required capability to the filter.

Parameters:

  • capability – Capability name to add (see capability class files for String constants)

void addCapabilities (List<String> capabilities)

Add array of required capabilities to the filter. (see capability class files for String constants)

Parameters:

  • capabilities – List of capability names

void addCapabilities (String… capabilities)

Add array of required capabilities to the filter. (see capability classes files for String constants)

Parameters:

  • capabilities – String[] of capability names