user137791 user137791 - 1 month ago 18
Swift Question

Scanning for Bluetooth 2.1 (legacy) devices on iOS

I have been looking around for a solution to scan for the nearby advertising bluetooth devices.

My concept app uses bluetooth to mark a student's attendance in a class. The app has been implemented on android and is in its testing phase, with the university (that i am a student of) has backed.

The problem arises on the iOS platform. I haven't been able to find a Library which allows me to scan for legacy bluetooth devices (Bluetooth 2.1). The CoreBluetooth library can only scan for BLE devices, which happens to rule out a sizable portion of the class. The other library which showed promise at first was the ExternalAccessory framework, but to much of my disappointment, i found out that it doesn't make any of the bluetooth scanning functionality transparent to the app.

So here's my question..

Is there any possible solution for me to scan for advertising legacy bluetooth devices (don't have to pair with the said device) on iOS?

Answer

Unfortunately, an app can't scan for legacy Bluetooth devices on iOS.

Even if it could, iOS randomises the Bluetooth MAC address that it advertises to non-paired devices in order to prevent device scanning such as you are attempting.