2013-04-16 17 views
5

Başlarken Android SDK'da Kütüphane '(bildiğim bellidir). (Google App Engine Java ve Android ben aşağıdan çalışan örnek almak için mücadele ettik

  • yöntem getDeviceInfo: GCMIntentService.java ve RegisterActivity.java

    hatalardır

    :

    Ama şimdi Android projede iki dosyalarında otomatik oluşturulan kod ile bir sorunu var string) türü için tanımsız Deviceinfoendpoint GCMIntentService.java

  • yöntem listMessages() türü için tanımsız MessageEndpoint RegisterActivity.java
  • yöntem insertDeviceIn fo (DeviceInfo) türü için tanımlanmamıştır Deviceinfoendpoint GCMIntentService.java
  • yöntem removeDeviceInfo (String) türü için tanımlanmamıştır Deviceinfoendpoint GCMIntentService.java

Ben Ubuntu Java SDK v1.7.0_15 kullanıyorum ama Ayrıca Windows 7'de Java SDK v1.6 ile çalıştı ve aynı sorunu yaşadım. En son Android Platform 4.2.2 ve Google App Engine 1.7.7. Eclipse, Juno Service Release 2'dir.

Sorun bazı döküm hataları yapıyor gibi görünüyor, çünkü Deviceinfoendpoint (farklı kapilasyonlar) içinde iç sınıf DeviceInfoEndpoint için getDeviceInfo bir yöntem var.

Bunu denemeyi ve düzeltmeyi deneyebilirim, ancak sadece bunun gerçekleşmesi için kurulumumda yanlış bir şey olup olmadığını mı merak ediyorum?

Herhangi bir yardım için teşekkür ederiz.

+0

Sorununuz, uygulama projesi veya uygulama projeniz üzerindedir? Bu hatalar için bazı stacktrace gönderebilir misin? –

+0

Sorun uygulama projesiyle ilgili. Henüz derlenmeyeceği için yığın yok. – reubenb87

+0

Dün akşam aynı sorunla boğuşuyordu. Ayrıca farklı yazılım kurulumlarıyla iki farklı makineyle çalıştı. – Heigo

cevap

3

, hataları ile hatlarında son nokta nesnenin sonra .deviceInfoEndpoint() ekleyin aşağıda gösterildiği gibi:

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

t hattı değiştirmek RegisterActivity.java olarak

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

o

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

Çok teşekkür ederim!Otomatik nesil kodlarında bir hata olmalı o zaman. – reubenb87

+0

Sorun değil. Ama örnek projeyi gerçekten çalıştırdınız mı? Android uygulamasının çalışmasını sağladım ve yalnızca iyi kaydetti, ancak arka uç herhangi bir cihaz görmedi. – Heigo

2

JAR'larınızda olduğu gibi aynı GCM API sürümlerini kullandığınızdan emin olabilirsiniz. Oldukça revizyonlar oldu.

Aşağıdaki kodu 19718 bayt olarak listelenen gcm-server.jar ile kullanıyorum.

başarıyla bir cihaza GCM mesaj göndermek için kullandığınız koddur:

sizin GCMIntentService.java sınıfta
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(); 
    } 
}