public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord)
{
    // Parse the payload part of an advertisement packet.
    List<ADStructure> structures =
        ADPayloadParser.getInstance().parse(scanRecord);
 
    // For each AD structure contained in the packet.
    for (ADStructure structure : structures)
    {
        if (structure instanceof EddystoneUID)
        {
            // Eddystone UID
            EddystoneUID es = (EddystoneUID)structure;
            // Beacon ID (= Namespace ID + Instance ID)
            // byte[] beaconId = es.getBeaconId();
            String beaconId = es.getBeaconIdAsString();
            // Namespace ID
            // byte[] namespaceId = es.getNamespaceId();
            String namespaceId = es.getNamespaceIdAsString();
            // Instance ID
            // byte[] instanceId = es.getInstanceId();
            String instanceId = es.getInstanceIdAsString();
            // Tx Power
            int power = es.getTxPower();
        }
        else if (structure instanceof EddystoneURL)
        {
            // Eddystone URL
            EddystoneURL es = (EddystoneURL)structure;
            // URL
            URL url = es.getURL();
            // Tx Power
            int power = es.getTxPower();
        }
        else if (structure instanceof EddystoneTLM)
        {
            // Eddystone TLM
            EddystoneTLM es = (EddystoneTLM)structure;
            // TLM Version
            int version = es.getTLMVersion();
            // Battery Voltage
            int voltage = es.getBatteryVoltage();
            // Beacon Temperature
            float temperature = es.getBeaconTemperature();
            // The number of advertisement packets since power-on or reboot.
            long count = es.getAdvertisementCount();
            // The elapsed time since power-on or reboot.
            long time = es.getElapsedTime();
        }
        else if (structure instanceof IBeacon)
        {
            // In passing, iBeacon
            IBeacon iBeacon = (IBeacon)structure;
            // Major Number
            int major = iBeacon.getMajor();
            // Minor Number
            int minor = iBeacon.getMinor();
            // Proximity UUID
            UUID uuid = iBeacon.getUUID();
            // Tx Power
            int power = iBeacon.getPower();
        }
    }
}
All you need to do to use nv-bluetooth is to add one line shown below into dependencies block in build.gradle.
compile 'com.neovisionaries:nv-bluetooth:1.6'
Links
- nv-bluetooth
- nv-bluetooth JavaDoc
- Eddystone
- Eddystone UID
- Eddystone URL
- Eddystone TLM
- Bluetooth: Specification Adopted Documents
 
