-
Notifications
You must be signed in to change notification settings - Fork 42
Open
Description
Steps to reproduce
- Get in proximity of an AltBeacon (or simulate one).
- Scan for beacons.
Expected behaviour
Beacon is reported as an AltBeacon.
Actual behaviour
Beacon is detected as an iBeacon. The decoded values (UUID, major, minor) appear to be otherwise correct.
Other details
It looks like the issue is here:
beaconloc/app/src/main/java/com/samebits/beacon/locator/model/DetectedBeacon.java
Lines 98 to 121 in 41960ed
@Override | |
public boolean isEddystone() { | |
return (getBeaconTypeCode() == TYPE_EDDYSTONE_UID) | |
|| (getBeaconTypeCode() == TYPE_EDDYSTONE_URL) || (getBeaconTypeCode() == TYPE_EDDYSTONE_TLM); | |
} | |
@Override | |
public BeaconType getBeaconType() { | |
if (isEddystone()) { | |
switch (getBeaconTypeCode()) { | |
case TYPE_IBEACON_ALTBEACON: | |
return BeaconType.ALTBEACON; | |
case TYPE_EDDYSTONE_TLM: | |
return BeaconType.EDDYSTONE_TLM; | |
case TYPE_EDDYSTONE_UID: | |
return BeaconType.EDDYSTONE_UID; | |
case TYPE_EDDYSTONE_URL: | |
return BeaconType.EDDYSTONE_URL; | |
default: | |
return BeaconType.EDDYSTONE; | |
} | |
} | |
return BeaconType.IBEACON; | |
} |
TYPE_IBEACON_ALTBEACON
is only tested in a switch statement if isEddystone() == true
. But the tests in isEddystone
already exclude TYPE_IBEACON_ALTBEACON
.
Looking at the upstream matcher (m:2-3=beac
), to test for AltBeacon you'd need to look for getBeaconTypeCode() == 0xBEAC
.
Version tested
Version 1.2.2 (F-Droid)
Metadata
Metadata
Assignees
Labels
No labels