I want to develop an app that allows me to connect Bluetooth 4.0 OBDII to an iPhone and read car data from it. From what I've read so far, it's not supported, but the OBDII adapters here and here both support iOS. How is this possible?
Bluetooth 4.0 devices have been supported since iOS 6 which was released in 2012. Since then, a multitude of apps have been written that communicate via BLE.
Related
I have application that already uses BLE. I know bluetooth 5 is supported on iPhone 8 and iPhone X. Client wants me to add support for bluetooth 5. I found that CoreBluetooth can be used only to "Communicate with Bluetooth 4.0 low-energy devices". How can I use Bluetooth 5.0 on iOS?
At the time of writing this, Apple has not provided API support for Bluetooth 5 functionality or any of its features (e.g. Long range, 2xSpeed, LE Advert Extensions, etc), so there's nothing you can do at your end. Currently only Bluetooth 4.2 features are supported (e.g. Data Packet Length Extension, LE Secure Connections, etc). Please have a look at the links below:-
https://developer.apple.com/videos/play/wwdc2017/712/
https://developer.apple.com/bluetooth/
I hope this helps.
iOS BLE 4.0 API s are not specific for Bluetooth 4.0 low-energy devices. Whatever works with Bluetooth 4.0 low-energy devices will also work for Bluetooth 5.0 low-energy devices.
Core Bluetooth library was working with BLE.
Its means no need to write different delegates and methods for bluetooth 4.0 or bluetooth 5.0.
All delegates working same for BLE(4.0, 4.1, 4.2 and 5.0 = BLE).
I'm developing an App, which is required to communicate with the devices of Bluetooth V2.0, V3.0, or V4.0. The communication is completed through the serial service of Bluetooth. The App is for iPad. We develop it with the Xcode V7.3.1 on the MacBook OS X El Capitan V10.11.4. There are many materials about the Bluetooth development for iOS, but lots of them are for CoreBluetooth.framework. I indeed tried to connect a device in hands through CoreBluetooth.framework, but it does not work. I have some basic questions about the CoreBluetooth and the Bluetooth-communication development.
Suppose the iPad, on which our App runs, has the chip of Bluetooth V4.0 (Smart Ready), can the App establish the Bluetooth connection with the devices of Bluetooth V2.0 or V3.0 through CoreBluetooth.framework? and then communicate with them?
If the answer of the 1st question is "No!", are there any other APIs available for the iOS App to communicate with the Bluetooth devices? If there are, what are they? Of course, we suppose that the Bluetooth devices are the MFi Bluetooth devices.
iOS devices which support Bluetooth Low Energy (v4.0) can connect and accept connections from other BLE compatible devices.
However, in order to connect using older protocols, you would need to become a member of the MFI program.
Hope this helps
we are about to start developing an app for iOS that reads data sent via Bluetooth from a device. Which framework should we use if the Bluetooth device that sends the data is not BLE 4.0? In addition to this, if it is possible to develop to app by using a different framework, will the same app also be able to connect to BLE 4.0?
Any pointer is highly appreciated.
Thanks in advance for any pointer.
The framework you are looking for is the ExternalAccessory.framework (although there are limitations). You can use it and the Corebluetooth.framework inside the same app, but they will not be related on which devices they can connect to. Corebluetooth is Bluetooth low energy only. Check this answer and the related links for more information on using the ExternalAccessory.framework :
How to use bluetooth classic instead of le
When I connect an iPhone to a mac computer, what are the limitations on what I can send over bluetooth?
My goal is to freely transmit data one-way from the iPhone to the OSX machine via the bluetooth. Is there a way to wrap your own communication class so that it sends any kind of data it wants? What are the limitations?
Can I send any data I please to the mac OS ?
Have you looked at using Bluetooth low energy ver 4.0 (CoreBluetooth Framework) ? Depending on your application it could be the best for you. Its supported on all latest iOS and Mac devices.
If you wan to use the Classic Bluetooth (Ver 3.0, 2.1 or 1.2)
Unfortunately currently is is not directly (easily) possible using Classic Bluetooth.
To do it ideally you would have needed the SPP profile (Serial Port Profile) but the iOS currently does not support SPP.
The iPhone can talk to the Mac (or any other device) using only the standard profiles it supports, and there is no direct access for your application to tap into standard profile data on the iOS device.
Would the following be possible?
Let's say I have a scale with Bluetooth capabilities, when I turn it on, it sends the weight via BT.
Is it technically possible to develop an iOS app which pairs with the scale and receives the data from it?
According to Apple:
Technical Q&A QA1657: Using External
Accessory framework with Bluetooth
devices.
Q: I understand that the External Accessory framework in iOS 3.0 and later will allow my application to communicate with Bluetooth devices. So why doesn't my application see the Bluetooth accessory sitting next to my iPhone?
A: The External Accessory framework is designed to allow iOS applications to communicate only with hardware accessories that are developed under Apple's MFi licensee program. MFi compliant accessories can be implemented as wired devices, meaning they plug in to the Apple device's 30-pin or Lightning connector, or as wireless devices, whereby they use Bluetooth as the communication channel. Either way, an application that uses the External Accessory framework will not be notified of an accessory's presence unless the accessory identifies itself as being MFi compliant, i.e., it was specifically designed to interface with an iOS application.
Yes, we can connect Bluetooth devices with iOS application through Core bluetooth framework. This framework is supported on the iPhone 4s, iPhone5,iPhone 5S ,iPad3. We can use BLE 4.0 for the communication between scale and iOS application. Here, iOS application become the client and scale become the peripheral. You Can set as well as get data from the weighing scale.
While the External Accessory Framework with Bluetooth is one of the possible solutions, it has additional requirements to be built as per Apple MFi, here Bluetooth reference is to the Classic Bluetooth (Version 3.x and below)
The best solution for the use case you have defined is to use the Bluetooth Low Energy (LE) (aka Bluetooth Smart) technology (Bluetooth 4.0) and it is available to applications as part of the Core Bluetooth Frameworks
Here are the APIs for Core Bluetooth that applications can use.
While currently Bluetooth Low Energy is supported on the latest iPhone 4S, New Mac Mini & Macbook Air - its expected most new Apple & Others hardware will have this standard.