2

I am having trouble understanding something on this page:

https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html

If you go to the section "bluetooth-perisperhal Background Execution Mode", it says:

All service UUIDs contained in the value of the CBAdvertisementDataServiceUUIDsKey advertisement key are placed in a special “overflow” area; they can be discovered only by an iOS device that is explicitly scanning for them.

Does this mean that an Android device cannot discover an iOS app that is in the background, even if the iOS app is acting as a peripheral in the background and using the service UUID that the Android app is specifically scanning for ?

EDIT: According to the discussion over here: iOS Background BLE advertising not detectable by Android

It may be possible to detect the iOS device from android, and after connecting check the service UUID etc. This has not been verified yet.

Rahul Iyer
  • 19,924
  • 21
  • 96
  • 190
  • Yes, that is what it means. – Paulw11 Apr 08 '20 at 14:40
  • @Paulw11 apparently you can still detect and connect from an android device. You just can’t scan based on UUID. After you connect then you can check the service uuid etc.... this is what I’ve been told, but haven’t verified yet.... – Rahul Iyer Apr 08 '20 at 14:50
  • @Paulw11 https://stackoverflow.com/q/58864679/2990509 – Rahul Iyer Apr 09 '20 at 04:00
  • So what that seems to be saying is that an Android app needs to connect to every Apple device it sees to determine if that Apple device is advertising the service that it is interested in rather than the more efficient case of only being notified about devices that are offering the service it is interested in – Paulw11 Apr 09 '20 at 04:04
  • @Paulw11 Yes, it seems that there is no alternative way to discover services if the iOS app is in the background. – Rahul Iyer Apr 09 '20 at 04:23

0 Answers0