Can we keep the advertising of NewAer Devices Enable, even if the application is in the background?
In general your app has to be running in order for our scanners to work. The easiest way to not require the user to launch the app is to use significant location changes. You could use this to trigger a background mode of your app and start the NewAer scanners. In addition, you have to set the bluetooth-peripheral background mode in the info.plist file.
Is there a way to turn off the discoverability/advertisements?
Use the method “stopAdvertisingWithDeviceTypes” to remove the NewAer services and disable advertising. Other apps running on the device may cause iOS to continue advertising over Bluetooth LE.
When we start advertising on an iOS device, then when does the advertising stop?
iOS is in control of what appears in Bluetooth LE advertising packets. When an application goes to the background, iOS removes that application’s primary service UUIDs from the advertising packet. This does not prevent another device from reading information from those services, it just makes it more difficult for a peer device to know that a primary service is present. The peer device actually has to connect and request a list of services. When the phone is locked, iOS lengthens the interval between advertising packets. If you app is killed then we can no longer scan or advertise.
Android API FAQs
I switched off my WiFi radio and the devices went into an UNKNOWN state immediately. In how much time can we expect them to turn from UNKNOWN to OUT_OF_RANGE?
The point of UNKNOWN is that we are telling you, the developer, that we can no longer reliably report the ground truth about a device. We don’t tell you that the device is OUT_OF_RANGE because this could be incorrect.
Imagine you are sitting next to your friend and you go into airplane mode. Now imagine we timeout UNKNOWN and send OUT_OF_RANGE. You would then get an OUT_OF_RANGE while you are sitting right next to your friend? We believe this to be a bad user experience and so the API is attempting to guide developers to good user experiences.
Your app is free to treat UNKNOWN as OUT_OF_RANGE but our experience is that users notice this.
If you move out of range of your friend and then turn your radio back on we will trigger OUT_OF_RANGE at that point since we once again know the ground truth.