===== Select the best Access Type ===== 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. ====ACCESS_TYPE_SYSTEM==== //Please contact us for system level access as a carrier or manufacturer. // ====ACCESS_TYPE_SYSRESERVED==== //Please contact us for reserved, premium access and features. // ====ACCESS_TYPE_ANTISPAM==== //Antispam apps block messages from regular messaging and other apps // [[Antispam Integration|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. ====ACCESS_TYPE_PLUGIN==== //SMS / MMS preprocessing for special features. // [[Plugin Integration|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. ====ACCESS_TYPE_AUTORESPONDER==== //SMS Autoresponders // [[Autoresponder Integration|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. ====ACCESS_TYPE_MSGRESERVED==== //Premium access for messaging apps. Provide enhanced processing and services to your users before standard messaging apps. Please contact us for details. // ====ACCESS_TYPE_MESSAGING==== //Full-featured messaging apps. // [[Full Featured App Integration|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.// ====ACCESS_TYPE_BACKUP==== //Backup apps will have full access to the SMS database. // [[Backup Integration|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. ====ACCESS_TYPE_OBSERVER==== //Observers will simply receive an additional SMS_RECEIVED broadcast. // ====ACCESS_TYPE_UNREGISTERED==== //Apps that integrate with SDMM but are not registered with an account. // Reserved for apps that integrate and do not request an appropriate Access Type (either based on their requested permissions, behavior, SDMM review, attempting to modify the SMS tables with authorization, etc.)