Google App Engine Java y Android Introducción

He estado luchando para obtener el ejemplo que se ejecuta desde abajo:

Https://developers.google.com/eclipse/docs/getting_started

El primer problema que tuve fue que no había instalado 'Google Cloud Messaging para Android Library' en el SDK de Android (obvio que sé).

Pero ahora tengo un problema con el código generado automáticamente en dos archivos en el proyecto de Android: GCMIntentService.java y RegisterActivity.java

Los errores son:

  • El método getDeviceInfo (String) no está definido para el tipo Deviceinfoendpoint GCMIntentService.java
  • El método listMessages () no está definido para el tipo MessageEndpoint RegisterActivity.java
  • El método insertDeviceInfo (DeviceInfo) no está definido para el tipo Deviceinfoendpoint GCMIntentService.java
  • El método removeDeviceInfo (String) no está definido para el tipo Deviceinfoendpoint GCMIntentService.java

Estoy usando Java SDK v1.7.0_15 en Ubuntu pero también probé en Windows 7 con Java SDK v1.6 y tenía el mismo problema. La última plataforma Android 4.2.2 y Google App Engine 1.7.7. Eclipse es Juno Service Release 2.

El problema parece que están haciendo algunos casting mal, porque hay un método getDeviceInfo para la clase interna DeviceInfoEndpoint dentro de Deviceinfoendpoint (capatilisations diferentes).

Podría tratar de arreglarlo, pero sólo me preguntaba si tengo algo mal en mi configuración para que esto suceda?

Cualquier ayuda sería apreciada.

En su clase GCMIntentService.java, agregue .deviceInfoEndpoint () después del objeto de punto final en las líneas con errores como se muestra a continuación:

DeviceInfo existingInfo = endpoint.getDeviceInfo(registration) DeviceInfo existingInfo = endpoint.deviceInfoEndpoint().getDeviceInfo(registration) 

En RegisterActivity.java cambiar la línea

 messageEndpoint.listMessages().setLimit(5).execute(); 

a

 messageEndpoint.messageEndpoint().listMessages().setLimit(5).execute(); 

Me aseguraría de que está utilizando la misma versión de API de GCM que tiene JARs. Ha habido bastantes revisiones.

Estoy usando el código siguiente con gcm-server.jar, enumerado en 19718 bytes.

El código que utilizo con éxito para enviar mensajes GCM a un dispositivo es:

 public void sendMessage() { String notificationToken = mobileDevice.getPushNotificationCode(); String deviceType = mobileDevice.getDeviceType(); Sender sender = new Sender(BROWSER_API_KEY); Message message = new Message.Builder().addData("message", "blah blah").build(); String device = "<the key for the device you are sending to goes here>"; try { System.out.println("Sending message..."); Result result = sender.send(message, device, 5); System.out.println("Done sending message"); if (result.getMessageId() != null) { System.out.println("Got message ID: " + result.getMessageId()); System.out.println("Got error code name: " + result.getErrorCodeName()); System.out.println("result: " + result); String canonicalRegId = result.getCanonicalRegistrationId(); if (canonicalRegId != null) { // Database has more than one record for this device. // Replace all of this device's records with this new id System.out.println("Got new canonical reg id: " + canonicalRegId); } } else { String error = result.getErrorCodeName(); if (error.equals(com.google.android.gcm.server.Constants.ERROR_NOT_REGISTERED)) { // application has been removed from device - unregister from database System.out.println("Got error: " + error); } } } catch (Exception e) { e.printStackTrace(); } } 
  • Google Cloud Endpoint continúa lanzando una excepción de "final inesperado"
  • La anotación sólo está disponible para java 1.5 y superior cuando se genera Google App Engine Backend (JDK 1.8, nuevo ADT instalado)
  • ¿Cómo enviar datos desde dispositivos móviles Android al almacén de datos de Google App Engine?
  • No se puede acceder a la aplicación de App Engine que se ejecuta en Android Studio mediante Android Device Application in LAN
  • La autenticación de Android en las cuentas de Google se transmite a Google App Engine
  • Gradlew appengineEndpointsInstallClientLibs tiene error La ejecución falló para la tarea ': compileJava'. > Versión de origen no válida: 1.7
  • Necesito sugerencias para enviar notificaciones push
  • Gestión de sesiones en Google App Engine con Android / IPhone
  • Ubicación personalizada del almacén de datos en una máquina local con App Engine
  • Aplicación de ejemplo de motor de aplicaciones de Google que arroja 503
  • Integre firebase auth con los puntos finales de la nube de motores de aplicaciones de Google
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.