Microsoft Band's Virtual Keyboard

Microsoft Band’s Virtual Keyboard (image from Microsoft)

Someone recently asked why the Microsoft Band Virtual Keyboard only works with Windows Phone 8.1.  I’ve been using mine with my Lumia Icon and didn’t realize that replying to a SMS message only partially works in Android and not at all for iOS.  While there doesn’t appear to be any documentation explain why the functionality is missing from some platforms, I’ve made a semi-educated guess for the reasons.

With the Band, you have three basic ways of replying to an incoming SMS message .  You can send a predefined text message called a “quick reply”.  You can define up to four quick reply messages.  Two are already set up for you: “I’ll call you back” and “I’m in a meeting”.  You can change those two or add two additional through the Microsoft Health App.   They are handy to use when you are in a meeting and need to send a quick response back without having to be that person who plays with his phone during a meeting.

The quick reply messages work with Android and Windows Phone.  In addition to the quick reply messages, with Windows Phone 8.1 you can use a virtual keyboard  or voice dictation on the Band.  Both of which require Windows Phone 8.1.

Voice dictation uses Cortana on Windows Phone 8.1.  You speak into the Band, the audio data is sent to the Phone and Cortana converts it to text and sends it back to the Band.  You can preview the text and then send the reply to the message.  Right now Cortana is Windows Phone 8.1 (and Windows 10) technology.  Microsoft has announced that they are porting it to Android and iOS, but it’s not available yet.  It’s also not known if the Cortana integration on Android and iOS will extend to working with the Band.

The Virtual Keyboard on the Band uses your phone to process your keypresses and swipes into text.  It uses the Word Flow technology in Windows Phone 8.1 to match the swipes to the appropriate word.  To support this on Android, Microsoft would need to port the Word Flow engine to Android.  It’s doable, but probably low on their backlog.

With iOS, we have a different story.  For an app, in this case the Microsoft Health app, to send an SMS message; it uses the SMS messaging API.  This is exposed through the MFMessageComposeViewController class.  The app composes the message using this class and then uses it to invoke the standard SMS composer view comes up.  The user can view or edit the message and then finally tap the send button to actually send the message.

By design, Apple does not allow apps to send SMS messages without the user confirming the message.  This is to prevent apps from spamming your contacts without your consent or knowledge.  There is a way to send messages without tapping anything on the phone, the Apple Watch supports that now.  At this time, that is handled by the Apple messaging app, I don’t think Apple has an API call for 3rd party devices to use.

It would be nice if Apple made a public API to allow wearable devices to send SMS messages, but I don’t see that happening any time soon.  Apple places a higher priority of preventing spam from being sent than allowing 3rd party device access.  Plus opening up directly sending a SMS would help a product that competes with the Apple Watch, and that’s not in Apple’s best interests.