From: bluetooth-dev-bounces+markd=email@hidden [mailto:bluetooth-dev-bounces+markd=email@hidden] On Behalf Of Jeff Rowberg
Sent: Monday, November 19, 2012 3:36 PM
To: email@hidden
Subject: Re: iOS6 access to SMS, email, and call notifications using Bluetooth Smart / BLE
Thanks for the feedback on the topic of accessing calls, emails, and texts in Bluetooth applications. That info plus a lot more searching has given me a pretty solid answer. Here’s a compilation of all relevant information I have found so far. The summary is this:
1. Accessing SMS, MMS, and emails through an iOS API directly is impossible, even in iOS6. This would break the “app sandboxing” rule Apple strictly enforces. Private APIs exist, but they’re…well…private.
2. The ONLY exception to the above point is if your device is jailbroken, in which case it’s completely open. This is not a good requirement for a retail accessory though, obviously.
3. iOS6 supports the MAP profile over classical Bluetooth only and NOT Bluetooth Smart / Low Energy. MAP allows access to push notifications in general (incoming calls I’m not sure about).
4. The Bluetooth Smart “Alert Notification Profile” is a perfect fit for BLE-based notification accessories, but using this requires that you have access to the data in the first place, which we do not.
5. MAP by itself works without requiring membership in MFI or any extra hardware, which is good, but it requires classic Bluetooth, which is a battery hog compared to BLE.
So, in short, for a feature-complete alert accessory TODAY (2012-11-19), you have to use Bluetooth classic and MAP. BLE won’t work for everything, though it will work for anything you can get to through a public API. Hopefully iOS will add support soon for permission-based read-only access to call metadata and incoming messages. This is trivial in Android if the user grants permission when installing the app. iOS feels sorely lacking by comparison, especially with the exploding BLE market.
Now for the links, for reference:
Pebble forum discussion of lack of API support (two pages, especially page 2 is useful)
Detecting call state from another app (only semi-possible if app is in foreground)
Detect foreground app about to become inactive, e.g. for incoming call:
Direct SMS access not possible in iOS if not jailbroken:
Jailbroken device SMS interception info:
Jailbroken device SMS content reading info:
Hope this helps some people.