Here is my challenge. I have a gimbal series 20 configured as an iBeacon and my goal is to allow my users to hold their phone in near physical contact with the beacon with the app backgrounded. Think apple pay.
I have the transmit power set all the way down to -23 but it's still too strong and the beacon is triggering the DidEnterRegion delegate meathod up to a foot away. Using ranging I can further threshold by measuring the rssi directly. This solution is working perfectly when the app is running. My issue is that this solution is not reliable running in the background as it only ranges for a few seconds after an enterRegion event and then stops.
Is there a way to further dampen the signal strength of the beacon or other way to cause the locationManger:DidEnterRegion: to trigger against a lower rssi reading?
A couple of tips:
Instead of reducing the transmit power on your beacon, turn it to the maximum you can for acceptable battery life. The reason to do this is because you'll get more consistent RSSI readings using your technique of reading the RSSI.
You can extend background ranging up to 3 minutes using the technique in my blog post here. Then, after region entry, you can collect RSSI samples via ranging for 10 seconds or so, and if the average is strong enough, trigger your logic.
Be careful to test with a number of devices (iPhone 4S/5/6, iPod, iPad variants) because each has a slightly different Bluetooth antenna gain and you'll need to tune your threshold to make it work on all devices where your app is compatible.