This is an old revision of the document!
The following access types each have different features. They are listed in the order in which an incoming message is processed. Ideally, you will select the lowest priority level suitable for your app. In some cases, your app will be automatically placed, and in cases where another app interferes with your app's performance, it will be re-prioritized. Proper user experience is critical.
Instructions for Integrating Antispam Apps
Antispam apps should not request “SMS_DELIVERED” - if you do, you will be denied this permission level and it will default to “unregistered” and your app will not work. This will also help with backward compatibility. Also, SDSMS will send duplicate messages to your app to confirm if the broadcast should be aborted based your user settings. You will not have SMS/MMS write access to the SMS provider.
Instructions for Integrating Plugins
Plugin apps should not request “SMS_DELIVERED” - if you do, you will be denied this permission level and it will default to “unregistered” and your app will not work. This will also help with backward compatibility. Also, SDMM will send duplicate messages to your app to confirm if the broadcast should be aborted or modified by your app. You will not have SMS/MMS write access to the SMS provider, so modifications must be made to the broadcast intent.
Instructions for Integrating Autoresponders
Autoresponder apps should not request “SMS_DELIVERED” - if you do, you will be denied this permission level and it will default to “unregistered” and your app will not work. This will also help with backward compatibility. Do not write the received message to the SMS provider.
Provide enhanced processing and services before standard messaging apps. Please contact us for details.
Instructions for Integrating Full-Featured Messaging Apps
By requesting this type of access your app will be responsible for writing to the SMS database. Therefore, all features should work in your app. As with pre-KitKat messaging, your app should abort the broadcast if there is reason to (for example, you have an anti-spam feature). The first "messaging" app to either abort or write the message will be the last in this group to receive it.
It is important to NOT follow all of Android's recommendations when you are not the “Default SMS App”. Proper integration requires that your app only disable them when neither your app nor SDMM is the “Default SMS App”. SDMM allows your app to continue to function properly as if it were the default app.
Instructions for Integrating Messaging Backup Apps
Since the system broadcasts “SMS_RECEIVED”, SDMM will do the same (in the event that Android changes that going forward). If you integrate with SDSMS, you will be able to provide full backup/recovery without user intervention or action.