The instructions you posted were correct – the issue is that you must implement all of the required capabilities:
-
In a broadcast receiver, include an intent filter for
SMS_DELIVER_ACTION
(“android.provider.Telephony.SMS_DELIVER
“). The broadcast receiver must also require the BROADCAST_SMS permission.
This allows your app to directly receive incoming SMS messages. -
In a broadcast receiver, include an intent filter for
WAP_PUSH_DELIVER_ACTION
(“android.provider.Telephony.WAP_PUSH_DELIVER
“) with the MIME type “application/vnd.wap.mms-message
“. The broadcast receiver must also require the BROADCAST_WAP_PUSH permission.
This allows your app to directly receive incoming MMS messages. -
In your activity that delivers new messages, include an intent filter for
ACTION_SENDTO
(“android.intent.action.SENDTO
“) with schemas,sms:
,smsto:
,mms:
, andmmsto:
.
This allows your app to receive intents from other apps that want to deliver a message. -
In a service, include an intent filter for
ACTION_RESPONSE_VIA_MESSAGE
(“android.intent.action.RESPOND_VIA_MESSAGE
“) with schemas,sms:
,smsto:
,mms:
, andmmsto:
. This service must also require theSEND_RESPOND_VIA_MESSAGE
permission.
Without all four, your app will not be listed in the default SMS selection dialog.