Android APIs
public final class

ScanFilter

extends Object
implements Parcelable
java.lang.Object
   ↳ android.bluetooth.le.ScanFilter

Class Overview

Criteria for filtering result from Bluetooth LE scans. A ScanFilter allows clients to restrict scan results to only those that are of interest to them.

Current filtering on the following fields are supported:

  • Service UUIDs which identify the bluetooth gatt services running on the device.
  • Name of remote Bluetooth LE device.
  • Mac address of the remote device.
  • Service data which is the data associated with a service.
  • Manufacturer specific data which is the data associated with a particular manufacturer.

  • Summary

    Nested Classes
    class ScanFilter.Builder Builder class for ScanFilter
    [Expand]
    Inherited Constants
    From interface android.os.Parcelable
    Fields
    public static final Creator<ScanFilter> CREATOR A Parcelable.Creator to create ScanFilter from parcel.
    Public Methods
    int describeContents()
    Describe the kinds of special objects contained in this Parcelable's marshalled representation.
    boolean equals(Object obj)
    Compares this instance with the specified object and indicates if they are equal.
    String getDeviceAddress()
    String getDeviceName()
    Returns the filter set the device name field of Bluetooth advertisement data.
    byte[] getManufacturerData()
    byte[] getManufacturerDataMask()
    int getManufacturerId()
    Returns the manufacturer id.
    byte[] getServiceData()
    byte[] getServiceDataMask()
    ParcelUuid getServiceDataUuid()
    ParcelUuid getServiceUuid()
    Returns the filter set on the service uuid.
    ParcelUuid getServiceUuidMask()
    int hashCode()
    Returns an integer hash code for this object.
    boolean matches(ScanResult scanResult)
    Check if the scan filter matches a scanResult.
    String toString()
    Returns a string containing a concise, human-readable description of this object.
    void writeToParcel(Parcel dest, int flags)
    Flatten this object in to a Parcel.
    [Expand]
    Inherited Methods
    From class java.lang.Object
    From interface android.os.Parcelable

    Fields

    public static final Creator<ScanFilter> CREATOR

    Added in API level 21

    A Parcelable.Creator to create ScanFilter from parcel.

    Public Methods

    public int describeContents ()

    Added in API level 21

    Describe the kinds of special objects contained in this Parcelable's marshalled representation.

    Returns
    • a bitmask indicating the set of special object types marshalled by the Parcelable.

    public boolean equals (Object obj)

    Added in API level 21

    Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null.

    The default implementation returns true only if this == o. See Writing a correct equals method if you intend implementing your own equals method.

    The general contract for the equals and hashCode() methods is that if equals returns true for any two objects, then hashCode() must return the same value for these objects. This means that subclasses of Object usually override either both methods or neither of them.

    Parameters
    obj the object to compare this instance with.
    Returns
    • true if the specified object is equal to this Object; false otherwise.

    public String getDeviceAddress ()

    Added in API level 21

    public String getDeviceName ()

    Added in API level 21

    Returns the filter set the device name field of Bluetooth advertisement data.

    public byte[] getManufacturerData ()

    Added in API level 21

    public byte[] getManufacturerDataMask ()

    Added in API level 21

    public int getManufacturerId ()

    Added in API level 21

    Returns the manufacturer id. -1 if the manufacturer filter is not set.

    public byte[] getServiceData ()

    Added in API level 21

    public byte[] getServiceDataMask ()

    Added in API level 21

    public ParcelUuid getServiceDataUuid ()

    Added in API level 21

    public ParcelUuid getServiceUuid ()

    Added in API level 21

    Returns the filter set on the service uuid.

    public ParcelUuid getServiceUuidMask ()

    Added in API level 21

    public int hashCode ()

    Added in API level 21

    Returns an integer hash code for this object. By contract, any two objects for which equals(Object) returns true must return the same hash code value. This means that subclasses of Object usually override both methods or neither method.

    Note that hash values must not change over time unless information used in equals comparisons also changes.

    See Writing a correct hashCode method if you intend implementing your own hashCode method.

    Returns
    • this object's hash code.

    public boolean matches (ScanResult scanResult)

    Added in API level 21

    Check if the scan filter matches a scanResult. A scan result is considered as a match if it matches all the field filters.

    public String toString ()

    Added in API level 21

    Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression:

       getClass().getName() + '@' + Integer.toHexString(hashCode())

    See Writing a useful toString method if you intend implementing your own toString method.

    Returns
    • a printable representation of this object.

    public void writeToParcel (Parcel dest, int flags)

    Added in API level 21

    Flatten this object in to a Parcel.

    Parameters
    dest The Parcel in which the object should be written.
    flags Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE.