2012-10-18 17 views
7

Android uygulamasında GCM hizmetini kullanmaya çalışıyorum. Bunun için Android Google Cloud Mesajlaşma (GCM) ve eşleşmeyen gönderici kimliği

, ben gönderen kimliği vb ve ben mesaj göndermek için kayıt kimliği ve gönderen kimliği kullanıyorum sunucu tarafı uygulaması ile istemci tarafı kayıt işlemini oluşturdu http://developer.android.com/guide/google/gcm/gcm.html

gelen android belgeleri kullanılır.

Uygulamayı telefonumda Eclipse aracılığıyla kurduğumda, push bildirimleri düzgün çalışıyor, dolayısıyla gönderenin kimliği doğru. i Eclipse ile apk dosyasını dışa ve benim telefona takın Sonra

, ben SenderID

MissmatchedSenderId 

Herkes yüzdenseninle bu alıyorum bir fikri vardır yanlıştır hata mesajı alıyorum.

Ben bu konularla okudum:

Why do I get "MismatchSenderId" from GCM server side?

When sending messages using GCM, I keep getting the response 'MismatchSenderId'

Ama benim durumumda garip bir şey her şey apk'de olarak uygulamayı ihraç öncesi çalışıyor ve o zaman bu sorunu olması.

Herhangi bir fikir çoğunlukla iyi gelir.

cevap

10

Aslında aynı problem vardı ve 10 saatten fazla araştırma yapıyordum.

Sonunda problemi buldum! Sunucu API anahtarı veya Tarayıcı API Anahtarı veya SenderID ile ilgili hiçbir şey yoktur.

final String regId = GCMRegistrar.getRegistrationId(this); 
if (regId.equals("")) { 
    GCMRegistrar.register(this, SENDER_ID); 
} else { 
    Log.v(TAG, "Already registered"); 
} 

Google ve getRegistrationId işlevini çağırmak zorunda olduğunu söylüyor yalnızca kimliği arama kayıtlarını boşaltır geçerli: sorun hakkında dokümantasyon oldu! Benim için hiç işe yaramadı ... Bunu yaptığımda, her zaman bu regId gönderirken MismatchSenderId döndüm. Daima

GCMRegistrar.register(this, SENDER_ID); 

arayıp fonksiyon

protected void onRegistered(Context c, String regId) 

benim sunucu veritabanında REGID kaydetme çağrıldığında:

Benim çözüm oldu.

Eğer bu şekilde yaparsam, her şey yolunda!

+0

Çok teşekkür ederim @schurtertom, bu aslında benim için de geçerli. –

+0

"GCMRegistrar" ı nerede bulabilirim, proje özelliklerimde Google Play Hizmetleri'ni kitaplığım olarak ekledim. Bu sınıfı hala içe aktaramadı. Bunun üstesinden nasıl gelebilirim? –

1

GCM tarafından sağlanan SenderID ve API anahtarının kombinasyonu, uygulama başına benzersizdir.

Gönderen kimliğimizi istemci tarafında güncellediğimizde, ancak hala eski gönderen kimliği ile ilgili API anahtarını kullandığımızda, gönderen Kimliği uyuşmazlığı sorunuyla karşılaştık.

Sunucu API anahtarını güncelledikten sonra sorunu çözdük. Aynı zamanda @schurtertom tarafından verilen cevap çok yararlıdır.

İlgili konular