iPhone SDK bluetooth capabilities and their limitations - ios

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.

Related

Is it possible to connect bluetooth low energy OBDII devices to iOS?

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.

CBPeripheral interaction with Windows

I have an app in my iPhone device. The app is advertising CBPeripheral service. I already created one app on mac which allows it to interact with MAC desktop using CBCentral. It basically exchanges some data with MAC initiated handshake. I wanted to make interact the Windows 7 PC to interact with the iPhone app in the similar manner. I am unable to find any proper way to do it.
I have found this, but it is minimum supported in Windows 8. Is there any way to do it?
There is no support from Microsoft for Bluetooth 4.0 AKA BTLE prior to Windows 8.

Can I make my Mac as a Bluetooth Peripheral?

I'm working on an idea which requires my Mac to send some data to my iOS device. I know CoreBluetooth framework is not there for Mac OS and only for iOS, so is there any way that I can get my Mac to pose a peripheral ?
I've done some Googling around - haven't got a straight answer :(
The CoreBluetooth.Framework is there for OSX. It's embedded inside of the IOBluetooth.framework. Download the sample mac apps from the Apple Dev Site. The one difference is that the OSX version of the CoreBluetooth.Framework does not contain the CBPeripheralManager class. You should just have your iOS device act as the peripheral and the Mac as the central. The iOS device can act as both at the same time and data can be sent both ways.
If you are comfortable with writing JavaScript, you can use bleno. It is a node.js module for implementing BLE (Bluetooth Low Energy) peripherals, and it support Mac OS X 10.9 or later, Linux and Windows.
You can find an example for implementing a Battery Service in peripheral mode in their github repository:
https://github.com/sandeepmistry/bleno/tree/master/examples/battery-service

iOS to Mac OS X [core] bluetooth data transfer

My objective here is to create a connection between a device running iOS to a device running Mac OS X, via bluetooth. I know that I might be able to use CoreBluetooth for this but I don't understand how since I don't see a method to setup a service on the iOS device and broadcast it as an available service for a device running Mac OS X. In other words, I simply want to setup a connection to get the iOS device to send data to the Mac OS X device. Also, how would I go about to specify how to setup properties of the service. I've tried researching this stuff but most of the documentation makes little sense to me. The data transfer is small so bluetooth is good enough for the job. I'm trying to avoid Bonjour for this, and the Game center framework for P2P since OS X can't handle that (I think).
In iOS6 the iPhone 4S, 5 and New iPad can work both as Peripheral and as Central in Bluetooth Smart / Low Energy mode.
Try downloading "LightBlue" APP from APP Store. It let's you put the iPhone4S or 5 into Peripheral mode with random Services which you can then read from the Mac (if you have a newer one with BT Low Energy, I use the Retina for that but also the new iMac and Mac Mini got BT Low Energy).
You are correct that Core Bluetooth only give access to Bluetooth Low Energy which doesn't allow for the MFI chip.
Just ran across this today... and just wanted to give another answer to anyone needing to communicate to a non-Bluetooth LE device from your Mac.
The way to go is with IOBluetooth, and IOBluetoothUI.
They are both frameworks for the Mac, and they allow you to communicate with both old bluetooth, and Bluetooth LE 4.0, I believe. Also, I'm pretty positive you can act as a Central and Peripheral Device using this framework.

Bluetooth programming in iPhone

I am planning to develop an iPhone application to transfer files/data to/from my Windows Desktop using Bluetooth.
Please let me know whether the programming interface(SDK)is available in iPhone SDK for this purpose.
In Windows Mobile, I can transfer the file either using a FTP profile or writing application on top of Serial Port Profile(RFComm).
Can anybody tell me, whether this can be possible with an iPhone by writing appropriate application. If not, please let me know alternative way to transfer files/data over bluetooth from iPhone to a Windows Desktop PC.
No, FTP or SPP bluetooth profile are not open in iPhone...
If you get into the made for ipod program, you might develop a bluetooth dongle for a computer (it can't use the normal one built into the computer as it needs a custom apple chip for encoding). This is the only method that could do something like what you want over bluetooth and get your app into the app store. You can implement a similar functionality more readily over wifi.
Yes you can. Use the Human Interface Device profile, and have your USB device pretend to be a keyboard. You can then have your app receive text input from the "keyboard". simply encode your data as ASCII encoded hex or base 64 and transmit. Whether or not your app would be allowed in the app store is a different matter.
There are 2 requirements to use iOS BT Classic for data transmission over RFCOMM.
1) You need to be enrolled in Apple MFi program.
2) The BT accessory which will be connected to iPhone needs to have a special HW chip called "MFi Coprocessor".
Both requirements need to be satisfied if you are developing FW for the BT accessory.
The latter one is required when you are coding iOS app.
BTW, you will not be able to communicate with Windows machine unless you have a BT dongle with MFi chip inside - see the second requirement.

Resources