public interface BeaconConsumer
Activity
or Service
that wants to interact with beacons. The interface is used in conjunction
with BeaconManager
and provides a callback when the BeaconService
is ready to use. Until this callback is made, ranging and monitoring of beacons is not
possible.
In the example below, an Activity implements the BeaconConsumer
interface, binds
to the service, then when it gets the callback saying the service is ready, it starts ranging.
public class RangingActivity extends Activity implements BeaconConsumer {
protected static final String TAG = "RangingActivity";
private BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ranging);
beaconManager.bind(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
beaconManager.unbind(this);
}
@Override
public void onBeaconServiceConnect() {
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection beacons, Region region) {
if (beacons.size() > 0) {
Log.i(TAG, "The first beacon I see is about "+beacons.iterator().next().getDistance()+" meters away.");
}
}
});
try {
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
BeaconManager
Modifier and Type | Method and Description |
---|---|
boolean |
bindService(android.content.Intent intent,
android.content.ServiceConnection connection,
int mode)
Called by the BeaconManager to bind your BeaconConsumer to the BeaconService.
|
android.content.Context |
getApplicationContext()
Called by the BeaconManager to get the context of your Service or Activity.
|
void |
onBeaconServiceConnect()
Called when the beacon service is running and ready to accept your commands through the BeaconManager
|
void |
unbindService(android.content.ServiceConnection connection)
Called by the BeaconManager to unbind your BeaconConsumer to the BeaconService.
|
void onBeaconServiceConnect()
android.content.Context getApplicationContext()
void unbindService(android.content.ServiceConnection connection)
boolean bindService(android.content.Intent intent, android.content.ServiceConnection connection, int mode)