In a post on the Android Developers Blog earlier today, Google has given us yet another indicator of upcoming changes to the Android platform. When KitKat launches, it will finally introduce a public API for the last remaining functions texting apps could not achieve without diving into private APIs. Developers are often advised to stay away from private APIs since they can change with each new version and may not be kept consistent across different OEMs.

The key component of the new system is a setting where users can choose their default texting app, and it will be guaranteed access to every SMS and MMS message received by the phone. As a part of this change, the selected app will exclusively receive the new SMS_DELIVER_ACTION and WAP_PUSH_DELIVER_ACTION intents when new messages arrive. Additionally, only this app will have permission to write to the SMS Provider, the central repository where your messages are stored.

defaultSmsAppchangeSmsApp (1)

Much of the wording makes it sound like sending and receiving of messages may become more limited, but the post never specifically states existing public methods will be restricted. Contrary to some interpretations, there is nothing in Google's post that clearly indicates that this will cause problems for apps that use texting for security, parental tracking, or even those used for spying. For now, it appears applications will still have the ability to watch for incoming messages through the existing SMS_RECEIVED_ACTION (notice, it's Received instead of Deliver) and to send messages through the SmsManager.send* methods. The only major change is that modifications to the database are restricted to the default app.

There are some drawbacks to the new system for both developers and users. Text messaging replacement apps should be modified to avoid sending messages if they are not the current default, since they won't be able to write the sent messages to the database. Unfortunately, this will effectively corral users into sticking with a single app for texting, which probably means the end of having one app for primary messaging while also having something like Facebook's Chat Heads around for quick replies.

Google's post also calls out backup and restore apps which are popular among modders. Developers of these apps are advised to guide their users through changing the default app, restoring their database, then switching back to the original app immediately after. Unfortunately, this flow will make it difficult for cloud messaging and cross-device syncing apps, neither of which will have much recourse with the new restriction.

Hopefully, these changes won't be too disruptive, but it seems likely some users will find their favorite apps crippled by the new restrictions. Developers of texting apps will want to add the necessary permissions and intent filters to their manifest to ensure they appear in the list of apps users can choose as a default. Support for the new API will come with Level 19, so app developers will want to keep their eyes peeled for the Android 4.4 SDK.

Source: Android Developers Blog