androidiosbluetooth-lowenergyandroid-bluetoothios-bluetooth

BLE Scan times for high end iOS and Android phones


We are working on a research project that requires active scanning of BLE beacon advertisements using the iBeacon protocol. I am under the impression that BLE scans on iOS and Android happen in multiple periods (1 period takes 1.28 seconds on iPhone?). The device scans all the bluetooth channels for some periods and then goes into idle state for some periods.

I could not find any documentation online specific to different phone models as to how long they actively scan and how long the idle period lasts. Can anyone help with this information for high end phones but not the latest and greatest. Say for example iPhone 10, Samsung Galaxy S10, Pixel 3XL etc.

Any information is much appreciated.


Solution

  • You can use developer options to take the hci log that logs all communication sent to and from the Bluetooth chip. There you will find the scan interval and scan window set by the host os.

    However the bluetooth firmware will only see this as a suggestion and might use other values in reality, for example if the radio must be prioritized for Wi-Fi communication or handle BLE connections. Since the firmware is closed source usually, we don't know exactly how it works.

    What you can do is to transmit advertisement packets from some source at a very low advertising interval, then run a scan on the phone and try to figure out the scan parameters by analyzing when packets are observed, and when they are lost.