mensajes de texto a cualquier operador movil con amazon

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

 

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:

 

 

0

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!