Use bluetooth in iOS application

581 views Asked by At

I'm currently digging my through the nest of using Bluetooth in my iOS application and I find it quite hard to find the information I'm looking for.

  • Can I turn on Bluetooth from within my app or does the user have to do it manually?
  • Can I use the basic Bluetooth fetaures (such as Discovery, connecting and Sending Data) with other devices running Bluetooth < 4.0 (classic)
  • AFAIK CoreBluetooth Framework can only be used to communicate with devices running Bluetooth 4.0+. Which framework is used to communicate with Bluetooth < 4.0 devices?
  • Is it possible to use Bluetooth in such a way that Apple will reject my App on App Store? And which ways would that be?
  • Is there a difference between paired and unparied communication? Can one communicate with another device without being paried? Can pairing be initated from an app?

To give some Context to my question: I'm currently developing a part of a Home Automation Application where the App needs to communicate with an embedded device which does not yet have Wifi. It has not been decided which Bluetooth version will run on the embedded device. The same functionality will be implemented in an Android application.

Thankful for some input from some with Bluetooth experience for iOS.

1

There are 1 answers

0
Paulw11 On BEST ANSWER
  • you cannot turn on Bluetooth from your app. The user must do it using settings or the control center.
  • unless you device is MFi certified you can only communicate with Bluetooth Low Energy devices
  • the external accessory framework is used to communicate with MFi devices that use "classic" Bluetooth
  • I am not aware of any use of Core Bluetooth that will lead to app rejection. If your app supports an MFi accessory that isn't associated with your company then your app will be rejected.
  • you can initiate bonding (commonly known as pairing but it is actually different) by requiring encryption for an attribute. Once the bonding is complete there is no difference in how you transfer data, but the data will be encrypted over the air.