blob: 1be048333fafb632314169bab5d160606e6a846c [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package io.v.android.libs.discovery.ble;
import android.bluetooth.le.AdvertiseCallback;
import android.bluetooth.le.AdvertiseData;
import android.bluetooth.le.AdvertiseSettings;
import android.bluetooth.le.BluetoothLeAdvertiser;
import android.util.Log;
import java.nio.ByteBuffer;
import java.util.Map;
import java.util.TreeMap;
import java.util.UUID;
import io.v.v23.discovery.Service;
import io.v.v23.discovery.VAdvertisement;
public class BlePlugin {
private Map<Integer, VAdvertisement> mAdvertisements;
private Map<Integer, VScanner> mScannersById;
private Map<UUID, VScanner> mScannersByServiceId;
private BluetoothLeAdvertiser mBluetoothLeAdvertiser;
private void readvertise() {
int hash = mAdvertisements.hashCode();
AdvertiseData.Builder builder = new AdvertiseData.Builder();
ByteBuffer buf = ByteBuffer.allocate(9);
buf.put((byte) 8);
buf.putLong(hash);
builder.addManufacturerData(1001, buf.array());
AdvertiseSettings.Builder settingsBuilder = new AdvertiseSettings.Builder();
settingsBuilder.setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_BALANCED);
settingsBuilder.setConnectable(true);
mBluetoothLeAdvertiser.startAdvertising(settingsBuilder.build(), builder.build(),
new AdvertiseCallback() {
@Override
public void onStartSuccess(AdvertiseSettings settingsInEffect) {
super.onStartSuccess(settingsInEffect);
Log.i("vanadium", "Successfully started " + settingsInEffect);
}
@Override
public void onStartFailure(int errorCode) {
super.onStartFailure(errorCode);
Log.i("vanadium", "Failed to start advertising " + errorCode);
}
});
}
}