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

Commit 39d84cbb authored by Jakub Pawlowski's avatar Jakub Pawlowski Committed by Etienne Ruffieux
Browse files

Bluetooth: make it possible to advertise Transport Discovery Data

Bug: 159363165
Tag: #feature
Test: called the API in test app, verified advertisement content
Change-Id: I7e0d6e9d77467068745996f3f370d470532f4c32
parent 042ae601
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.bluetooth.gatt;

import android.bluetooth.BluetoothUuid;
import android.bluetooth.le.AdvertiseData;
import android.bluetooth.le.TransportDiscoveryData;
import android.os.ParcelUuid;
import android.util.Log;

@@ -41,6 +42,7 @@ class AdvertiseHelper {
    private static final int LIST_32_BIT_SERVICE_SOLICITATION_UUIDS = 0x1F;
    private static final int SERVICE_DATA_32_BIT_UUID = 0X20;
    private static final int SERVICE_DATA_128_BIT_UUID = 0X21;
    private static final int TRANSPORT_DISCOVERY_DATA = 0X26;
    private static final int MANUFACTURER_SPECIFIC_DATA = 0XFF;

    public static byte[] advertiseDataToBytes(AdvertiseData data, String name) {
@@ -205,6 +207,13 @@ class AdvertiseHelper {
                ret.write(serviceUuids128.toByteArray(), 0, serviceUuids128.size());
            }
        }

        for (TransportDiscoveryData transportDiscoveryData : data.getTransportDiscoveryData()) {
            ret.write(transportDiscoveryData.totalBytes() + 1);
            ret.write(TRANSPORT_DISCOVERY_DATA);
            ret.write(transportDiscoveryData.toByteArray(),
                    0, transportDiscoveryData.totalBytes());
        }
        return ret.toByteArray();
    }
}