iBeacon: Get advertisement package faster

2019-03-05 07:59发布

In my app I get the information of the beacons with CoreLocation and and the LocationManager. I've set the advertising interval of the beacons to 200ms. Is it possible to call the didRangeBeacons delegate method faster, so that i get the values of the advertising package according to the advertising interval of the beacon?

1条回答
兄弟一词,经得起流年.
2楼-- · 2019-03-05 08:12

No, you cannot alter the frequency of the didRangeBeacons:inRegion callback, which is 1 Hz regardless of the beacon advertising frequency.

You can get callbacks for each beacon advertisement (every 200 ms in your case) using CoreBluetooth APIs, but there are a couple of restrictions:

  1. It will not work with iBeacon transmissions as iOS blocks access to iBeacon advertisement data in CoreBluetooth. You can use AltBeacons, which are iBeacon compatible, and get the more frequent updates with those. You can buy beacons that send out both iBeacon and AltBeacon transmissions.

  2. It will only work in the foreground. You cannot get Bluetooth LE manufacturer advertisements in the background on iOS.

Full disclosure: I am Chief Engineer at Radius Networks which sponsors the open source AltBeacon standard.

查看更多
登录 后发表回答