Hoy veremos como enviar mensaje de texto a cualquier operador gracias al servicio de prueba gratuito que nos da la empresa Amazon, este tutorial esta dirigido para personas que tengan conocimientos básicos en android y también para personas que no sepan absolutamente nada de programación de ningún tipo y para llevar a cabo este tutorial quiero que lean este articulo y vean el vídeo que les dejare al final de este articulo, por favor háganme caso sigan paso a paso el tutorial y el servicio les saldrá gratis por un año y no tendrán problemas.

enviar mensajes de texto en android
Mensajes de texto en android para cualquier operador con amazon
Contenidos
Cosas que deberías saber:
Para el envió de mensajes utilizaremos un servicio de amazon llamado SNS este servicio tiene un costo, pero por el registro nuevo de un usuario te dan el servicio gratis por un año a continuación te dejo un cuadro para que observes de que se trata:
Tipo de punto de enlace | Capa gratuita | Precio |
---|---|---|
Notificaciones push móviles | 1 millón | 0,50 USD por millón |
SMS mundial | 100 | Más información |
email/email-JSON | 1000 | 2,00 USD por 100 000 |
HTTP/s | 100 000 | 0,60 USD por millón |
Simple Queue Service (SQS) | Las entregas a colas de SQS se realizan sin cargo | – |
Funciones de Lambda | No se cobran las entregas realizadas a Lambda | – |
Nota: cada porción de 64 KB de datos publicados se factura como 1 solicitud. Por ejemplo, una sola notificación con una carga de 256 KB se facturará como cuatro entregas. Para saber mas puedes revisar el siguiente enlace: SMS
Paso 1:
Lo primero sera averiguar si tu país es apto para el servicio SNS de Amazon, entonces para saberlo debes ir al siguiente enlace: Servicio SNS
Te va aparecer un cuadro en el cual debes buscar a tu pais si no entiendes, te aconsejo que observes el video del tutorial, ahí se especificara mas para no alargar el tutorial escrito.
Paso 2:
Debes ir al siguiente enlace https://aws.amazon.com/es/ y debes registrarte para dicho registro te pedirán una tarjeta de débito o crédito, tranquilo es solo por cuestiones de que no se abuse el servicio, para cualquier dura observa el vídeo donde se explica mejor.
Paso 3:
Observa el vídeo del final para obtener tus ACCESSKEY —– SECRECTKEY
Paso 4:
Implementacion, para este tutorial prepare un ejercicio sencillo en el cual puedes ver como se utiliza la api de Amazon
Primero debemos dar unos permisos en nuestro AndroidManifest
AndroidManifest
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.androfast.server.appmensajetexto"> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
También debemos agregar unas librerías en nuestro buil.gradle
buil.gradle
implementation 'com.amazonaws:aws-android-sdk-core:2.7.+' implementation 'com.amazonaws:aws-android-sdk-sns:2.7.0'
Ahora nuestra clase MainActivity, recuerda que debes reemplazar como te indica el código tu numero móvil y tu accesskey junto con tu secretkey que obtienes de Amazon
MainActivity
import android.os.Build; import android.os.StrictMode; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.regions.Region; import com.amazonaws.regions.Regions; import com.amazonaws.services.sns.AmazonSNSClient; import com.amazonaws.services.sns.model.MessageAttributeValue; import com.amazonaws.services.sns.model.PublishRequest; import com.amazonaws.services.sns.model.PublishResult; import java.util.HashMap; import java.util.Map; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if(Build.VERSION.SDK_INT > 9){ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } AWSCredentials awsCredentials = new BasicAWSCredentials("TU ACCESSKEY", "TU SECRECTKEY"); final AmazonSNSClient cliente = new AmazonSNSClient(awsCredentials); cliente.setRegion(Region.getRegion(Regions.CN_NORTH_1)); AmazonSNSClient snsCliente = new AmazonSNSClient(awsCredentials); String mensaje = "Hola soy ANDROFAST 2"; String numero = "Aqui va tu codigo de pais + numero movil"; Map<String, MessageAttributeValue> smsAttributes = new HashMap<>(); enviarMensaje(snsCliente,mensaje,numero,smsAttributes); } public static void enviarMensaje(AmazonSNSClient snsClient, String mensaje, String numero, Map<String, MessageAttributeValue>smsAttributes) { PublishResult resultado = snsClient.publish(new PublishRequest() .withMessage(mensaje) .withPhoneNumber(numero) .withMessageAttributes(smsAttributes)); System.out.println("Confirmacion"+resultado); } }
Para todo aquel que necesite probar sin necesidad de programar, cree una aplicación lo descargan del siguiente enlace:
Hola soy Alex Céspedes fundador de ANDROFAST, programo algunas cosas por diversión, me gusta aprender cosas nuevas y estoy pendiente de todo lo que tenga que ver con tecnología. Este blog lo cree para todas las personas que tengan dificultades en la programación, para ser sincero nunca fui bueno y reprobé algunos cursos de programación, pero mis ganas de aprender pudieron más. SI YO PUEDO TU PUEDES ANIMO!