Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit db415b26 authored by Fei Zheng's avatar Fei Zheng
Browse files

Bluetooth: Implement API to get device identification information

Submitted on behalf of a third-party: Samsung System LSI

License rights, if any, to the submission are granted solely by the
copyright owner of such submission under its applicable intellectual
property.

Copyright (C) 2015 Samsung System LSI
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Third Party code includes additions/modifications from Qualcomm Innovation Center, Inc.

Call BluetoothDevice.sdpSearch(BluetoothUuid.DIP) to search DIP information,
and receive intent BluetoothDevice.ACTION_SDP_RECORD to get SdpDipRecord from
BluetoothDevice.EXTRA_SDP_RECORD

Bug: 141666056
Test: atest BluetoothInstrumentationTests
Sponsor: alainv@
Tag: #feature

Change-Id: I82d0979b77d28ec36fde6616622d216a28310b4a
parent c611e734
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -162,6 +162,11 @@ public final class BluetoothUuid {
    /** @hide */
    @NonNull
    @SystemApi
    public static final ParcelUuid DIP =
            ParcelUuid.fromString("00001200-0000-1000-8000-00805F9B34FB");
    /** @hide */
    @NonNull
    @SystemApi
    public static final ParcelUuid BASE_UUID =
            ParcelUuid.fromString("00000000-0000-1000-8000-00805F9B34FB");

+104 −0
Original line number Diff line number Diff line
/*
* Copyright (C) 2015 Samsung System LSI
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.bluetooth;

import java.util.Arrays;

import android.os.Parcel;
import android.os.Parcelable;

/**
 * Data representation of a Object Push Profile Server side SDP record.
 */
/** @hide */
public class SdpDipRecord implements Parcelable {
    private final int mSpecificationId;
    private final int mVendorId;
    private final int mVendorIdSource;
    private final int mProductId;
    private final int mVersion;
    private final boolean mPrimaryRecord;

    public SdpDipRecord(int specificationId,
            int vendorId, int vendorIdSource,
            int productId, int version,
            boolean primaryRecord) {
        super();
        this.mSpecificationId = specificationId;
        this.mVendorId = vendorId;
        this.mVendorIdSource = vendorIdSource;
        this.mProductId = productId;
        this.mVersion = version;
        this.mPrimaryRecord = primaryRecord;
    }

    public SdpDipRecord(Parcel in) {
        this.mSpecificationId = in.readInt();
        this.mVendorId = in.readInt();
        this.mVendorIdSource = in.readInt();
        this.mProductId = in.readInt();
        this.mVersion = in.readInt();
        this.mPrimaryRecord = in.readBoolean();
    }

    public int getSpecificationId() {
        return mSpecificationId;
    }

    public int getVendorId() {
        return mVendorId;
    }

    public int getVendorIdSource() {
        return mVendorIdSource;
    }

    public int getProductId() {
        return mProductId;
    }

    public int getVersion() {
        return mVersion;
    }

    public boolean getPrimaryRecord() {
        return mPrimaryRecord;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(mSpecificationId);
        dest.writeInt(mVendorId);
        dest.writeInt(mVendorIdSource);
        dest.writeInt(mProductId);
        dest.writeInt(mVersion);
        dest.writeBoolean(mPrimaryRecord);
    }

    @Override
    public int describeContents() {
        /* No special objects */
        return 0;
    }

    public static  final Parcelable.Creator CREATOR = new Parcelable.Creator() {
        public SdpDipRecord createFromParcel(Parcel in) {
            return new SdpDipRecord(in);
        }
        public SdpDipRecord[] newArray(int size) {
            return new SdpDipRecord[size];
        }
    };
}