The MOCA SDK detection engine differentiates between foreground and background, and works differently in iOS and Android.
For Android, in the foreground it scans more aggressively and, using the Balanced profile, detect beacons within 5 seconds (worst case scenario). In background, worst case is up to 70 seconds. You can check more about the Android SDK configuration here.
# Beacon detection engine profile [LowLatency, Balanced, BatterySaver, Custom] # LowLatency = Notifications will be delivered almost instantly in foreground and background. # but will have an important impact on the user's device battery. # Balanced = Notifications are delivered almost instantly in foreground. In background it can # take up to one minute. In Android Lollipop, Marshmallow, and N there are operating system # optimizations that reduce the notification delay (Default setting). # BatterySaver = Detections in foreground can take up to one minute, and in background up to #5 minutes. this is the recommended setting for analytics-only usages. # beaconProfile = Balanced # If beaconProfile is "Custom", the following parameters are mandatory # foregroundTimeBetweenScans: Time between each scan in milliseconds, close scans means faster response, but # more battery consumption. # foregroundScanDuration: Time while device will be listening bluetooth signals in milliseconds. # We recommend at least 1100 ms, so if your beacon broadcasts a signal each 350 Hz,~3 packets # will be received. # backgroundTimeBetweenScans: Same than foregroundTimeBetweenScans, but when device is in the background. # this is the most important setting in terms of battery consumption. # backgroundScanDuration: Same than foregroundScanDuration but in background.
On iOS the detection engine is obscured. The operating system manages all the processes, and works using ranging and monitoring. It's highly efficient and works very similar in latency with Android, but has specific limitations (max 20 regions, ranging only sees UUID) and is not configurable.