因为毕设要求,需要测量iBeacon信号,刚学安卓,真的是头大。iBeacon信号简介我就不介绍了自己百度,直接贴代码和介绍吧。
看了许多人的博客,我的思路跟他们也是一样的,iBeacon信号在后台扫描检测,然后通过intent将接收到的数据发送到前台界面。
(1)iBeacon信号扫描是根据后台启动一个service来检测的,应用了一个库:https://altbeacon.github.io/android-beacon-library/samples.html,这个库里面的包我应用的是2.13的。
代码如下:
public class BeaconService extends Service implements BeaconConsumer,RangeNotifier{
private static final long DEFAULT_BACKGROUND_SCAN_PERIOD = 2000L;
private static final long DEFAULT_BACKGROUND_BETWEEN_SCAN_PERIOD = 1000L;
protected static final String TAG = "BeaconScanActivity";
public BeaconManager beaconManager = null;
public static final String IBEACON_FORMAT = "m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24";//这一步是检测自己的iBeacon设备
public BeaconService(){
}
@Override
public void onCreate() {
super.onCreate();
beaconManager = org.altbeacon.beacon.BeaconManager.getInstanceForApplication(this);
//beaconManager.getBeaconParsers().clear();
beaconManager.getBeaconParsers().add(