Beacons in Android
improve this page | report issueOverview
This tutorial discusses the client-side API for working with beacons in Android.
This is a continuation of Working with Beacons (introduction, setup, and server side API).
The following topics are covered:
- Configuring your application
- Simplified APIs for ranging and monitoring beacons
- Running the sample application
Configuring your application
- Download the Android Beacon Library v2.1.3 and above from this page:
http://altbeacon.github.io/android-beacon-library/download.html
- Import the Android Beacon Library into Eclipse.
- Right-click the Android application project and select Properties -> Android -> Library -> Add.
- Select android-beacon-library and click Apply -> OK.
- Add the following entry to the
project.properties
file.
manifestmerger.enabled=true
- Copy the source files under
/src/com/worklight/wlclient/api
into thesrc
folder of the Android application (by preserving the package directories).These source files use JSONStore to store beacons, triggers, and associations locally.
- Add the libraries to enable JSONStore for your native Android application.
For more information, see the topic about copying files of native API applications for Android, in the user documentation.
Android Manifest configuration
- Specify minSdkVersion as 18 (Android 4.3).
- Specify permissions for BLUETOOTH and BLUETOOTH_ADMIN.
- This is in addition to the following standard Worklight permissions:
- Specify
com.worklight.wlclient.api.WLBeaconsMonitoringApplication
as the application name.
Enable the library to show alerts
Simplified APIs for monitoring/ranging beacons
Loading beacons and triggers from the server
To load information pertaining to beacons, triggers, and their associations from the server and storing it in the application JSONStore, write the following code:
Triggering action
To start the monitoring/ranging of Beacons and to fire trigger actions, write the following code:
To let the user opt out of Beacon monitoring, write the following code:
Running the sample application
Download the MobileFirst project and the native project.
The sample contains two projects:
- The
BeaconsMFP.zip
file contains a MobileFirst native API that you can deploy to your MobileFirst Server instance. - The
BeaconsAndroid.zip
file contains a native library that provides a simplified set of APIs for ranging/monitoring beacons and a native Android application that demonstrates the usage of those APIs.
Make sure to update the wlclient.properties
file in AndroidNativeBeacons with the relevant server settings.
The sample showcases a simple banking scenario where actions are triggered based on proximity:
- When the user enters a Bank branch, a notification action is triggered with a Welcome message.
- When the user stays in the Bank branch, an alert is triggered with a message stating that a bank personnel will assist the user soon.
- When the user exits the Bank branch, a notification action is triggered with a message.
What kinds of beacons can be detected?
By default, the Android Beacon Library
will only find beacons, meeting the open AltBeacon
standard.
The library can be configured to work with different types of beacons. The byte layout of the beacon's advertisement must be specified in WLBeaconsMonitoringApplication
class in
com/worklight/wlclient/api
package.
For details refer - http://altbeacon.github.io/android-beacon-library/javadoc/org/altbeacon/beacon/BeaconParser.html
Detecting Beacons After application is killed
Application can be configured to detect Beacons even after being killed.
▲For details refer - http://altbeacon.github.io/android-beacon-library/resume-after-terminate.html
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.