Agregar Google Cloud Messagin (GCM) para Android – Proceso de registro

He estado luchando con la implementación de GCM durante algunas semanas, pero cómo realmente quiero llegar a entender cómo funciona. Decidí dar ‘pasos de bebé’.

En primer lugar, como se menciona aquí , entendí que lo primero que debe hacer es registrar mi dispositivo / aplicación primero debe registrarse en GCM.

Para verificar que puedan enviar y recibir mensajes, las aplicaciones del cliente deben registrarse en GCM. En este proceso, el cliente obtiene un token de registro único.

Me gustaría saber si el procedimiento y el código a continuación representan el código mínimo necesario para realizar dicho registro (el ‘ código mínimo necesario ‘ es porque cuando aprendí OpenGL ES 2.0 y comencé a tratar con sombreadores, lo vi al tratar con conceptos difíciles / confusos, si entiende el código mínimo necesario, puede luego entender qué es el código “periférico”)

Procedimiento para registrar la aplicación con GCM:

  1. Cree un proyecto en Google Developer Console;

    1. Activar la API “Cloud Messaging for Android”;
    2. Cree una clave API de servidor en “Credenciales”;
    3. Tome nota de la identificación del proyecto;
    4. Toma nota del número del proyecto;
    5. Tome nota de la clave API del servidor;
  2. Crea un proyecto de Android Studio;

    1. Agregue un tipo de módulo “App Engine Backend con CGM”;
    2. En la ventana “appengine-web.xml” que se abrirá, escriba la ID de la aplicación y la clave API del servidor.
    3. Cree una actividad principal, utilizando el número de proyecto (SENDER_ID).

Después de hacer todo eso y ejecutar la aplicación, obtuve un token con 152 caracteres. ¿Todo eso es correcto? Teniendo en cuenta que obtuve un token, ¿mi dispositivo está registrado en GCM?

appengine-web.xml:

  mygcmtest... 1 true      

Actividad principal:

 public class MainActivity extends AppCompatActivity { private final Context mContext = this; private final String SENDER_ID = "319899..."; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getGCMToken(); } private void getGCMToken() { new AsyncTask() { @Override protected Void doInBackground(Void... params) { try { InstanceID instanceID = InstanceID.getInstance(mContext); String token = instanceID.getToken(SENDER_ID, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); Log.e("GCM Token", token); } catch (IOException e) { e.printStackTrace(); } return null; } }.execute(); } } 

Manifiesto:

                  

¿Mi respuesta con el código fuente es su pregunta? ¿Cómo implementar un GCM Hello World para Android con Android Studio no es suficiente para crear dos proyectos simples de GCM (del lado del servidor y del lado del cliente) todavía? 🙂

Por supuesto, el código de muestra que utilicé es solo para un caso muy básico “envía la aplicación del servidor, la aplicación del cliente recibe y muestra el mensaje” .

En resumen, debe seguir los siguientes pasos:

  1. Cree un nuevo proyecto en Google Developers Console . En este paso, por simplicidad, solo necesita tomar nota de 2 valores: Project Number , que se usará como SENDER_ID en mi proyecto de cliente; y la API server key (creada en Credentials ), que se usará como API_KEY en mi proyecto de servidor.
  2. Cree un nuevo proyecto simple de Android para el lado del servidor (con el código fuente básico como respuesta en su pregunta anterior).
  3. Cree un nuevo proyecto simple de Android para el lado del cliente (con el código fuente básico como respuesta en su pregunta anterior, personalicé desde la fuente original en Google Cloud Messaging – GitHub ).
  4. Ejecute la aplicación cliente, obtendrá el token de registro (significa que su dispositivo se ha registrado correctamente ). A continuación, pegue (código duro) este token en la variable CLIENT_REGISTRATION_TOKEN en la aplicación del servidor.
  5. Ejecute la aplicación del servidor y verifique el resultado (la aplicación del cliente recibió el mensaje o no)

¡Espero que esto ayude!

P / S: no uso ningún archivo appengine-web.xml