AltBeacon
Hello!
I am Sara Veterini
Master of Science in Engineering in
Computer Science, Sapienza-Università di
Roma- Pervasive Systems Course
You can find me at:
■saraveterini@gmail.com
•https://github.com/SaraVeterini
•https://www.linkedin.com/in/sara-
veterini-667684116
1.
What is
AltBeacon?
Let’s understand
AltBeacon in two points
■ Specification of format of advertisement
messages that Bluetooth Low Energy
proximity beacons broadcast
■ The contents of the emitted messages
contain information that the receiving
device can use to identify the beacon
2.
Why using it?
What are the
advantages?
It is open!
You can also provide feedback, opening an
issue on Github
Easiness
■Concise proximity
advertisement
message between
advertisers and
scanners
Interoperability
■Avoid
implementation
restrictrions, so easier
format to adopt
Main goals
3.
Implementation
Some technical
details
■The specification
follows the standard
defined in Bluetooth
Specification Version
4.0
■Designed for devices
Bluetooth Low Energy
compliant
Requisites
Format
4.
Programming
Interaction with
beacons
Interacting with Beacons
Locate Beacon: Android application that
detects beacons and also transmits as a
beacon (on some devices):
https://play.google.com/store/apps/details
?id=com.radiusnetworks.locate
Developing
■Android Beacon Library:
https://github.com/AltBeacon/android-beacon-library
■Linux AltBeacon Refence Implementation:
https://github.com/RadiusNetworks/altbeacon-reference
■PiBeacon:
http://store.radiusnetworks.com/collections/all/products/
pibeacon
■Virtual AltBeacon:
http://developer.radiusnetworks.com/altbeacon/virtual
■Open source
■Interoperable
■Widely used
■Support for stickers
■Indoor Location SDK
■Cloud support
Comparison with Estimote SDK
Demo time!
Code snippets
public class RangingActivity extends AppCompatActivity
implements BeaconConsumer {
...
@Override protected void onCreate(Bundle savedInstanceState)
{
...
beaconManager = BeaconManager
.getInstanceForApplication(this);
//estimote layout
beaconManager.getBeaconParsers(). add(new
BeaconParser(). setBeaconLayout("m:2-3=0215,i:4-19,i:20-
21,i:22-23,p:24-24"));
beaconManager.bind(this);
beaconManager.setForegroundScanPeriod(5000l);
...
}
Code snippets (2)
public class RangingActivity extends AppCompatActivity
implements BeaconConsumer {
...
@Override protected void onCreate(Bundle savedInstanceState)
{
...
BluetoothAdapter mBluetoothAdapter =
BluetoothAdapter.getDefaultAdapter();
if (!mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new
Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent,
REQUEST_ENABLE_BT);
}
...
}
Code snippets (3)
public class RangingActivity extends AppCompatActivity
implements BeaconConsumer {
...
@Override
public void onBeaconServiceConnect() {
beaconManager.setRangeNotifier(new
BeaconRangeNotifier());
try {
beaconManager.startRangingBeaconsInRegion(new
Region("RangingUniqueId", null, null, null));
} catch (RemoteException e) { }
}
Splashscreen
Place your screenshot here
Bluetooth
Enable bluetooth if not done
before
Place your screenshot here
Your clues
List of clues that are next to
you
Place your screenshot here
Details of a clue
Tapping on the corresponding
item in the list, you can read
more about the clue you
found, so it can help you
finding the key
Place your screenshot here
Thanks!
Any questions?
Demo:https://github.com/SaraVeterini/Clues

AltBeacon