服務器返回未註冊我也跟着在http://developer.android.com/google/gcm/gs.html給出的演示,並得到了試用版應用程序,GCMTrial才能正常工作。Android GCM錯誤。當客戶端註冊
但是,我試圖遵循現有的應用程序相同的步驟,但因此未工作。所以我做了一個全新的項目。但即使如此,按照相同的步驟,我無法讓GCM成功發送消息。所以我嘗試將GCMTrial重命名爲所需的名稱,而不是那樣也行不通。
我通過主活動註冊GCM並獲得以下日誌:
12-19 21:30:13.102: V/GCMRegistrar(15889): Registering receiver
12-19 21:30:13.112: D/GCMBaseIntentService(15889): handleRegistration: registrationId = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, error = null, unregistered = null
12-19 21:30:13.112: D/GCMRegistrar(15889): resetting backoff for com.XXX.XXX
12-19 21:30:13.117: V/GCMRegistrar(15889): Saving regId on app version 1
但是當我嘗試發送GCM消息時,它返回以下錯誤
[ errorCode=NotRegistered ]
客戶端代碼:
public class MainActivity extends Activity {
TextView tve;
String TAG = "GCMTrial";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals("")) {
GCMRegistrar.register(this, "XXXXXX");
Log.v(TAG, "Reg");
} else {
Log.v(TAG, "Already registered");
}
}
GCMIntentService :
public class GCMIntentService extends GCMBaseIntentService {
@Override
protected void onError(Context arg0, String arg1) {
// TODO Auto-generated method stub
}
@Override
protected void onMessage(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
Log.d("GCM", "RECIEVED A MESSAGE");
// Get the data from intent and send to notificaion bar
}
@Override
protected void onRegistered(Context arg0, String arg1) {
// TODO Auto-generated method stub
}
@Override
protected void onUnregistered(Context arg0, String arg1) {
// TODO Auto-generated method stub
}
}
清單:
服務器代碼:
System.out.println("Sending GCM");
String key = "XXX"; //Server API key taken from the site
clientID = "XXXXXXXXX"; // copied from the logs
Sender sender = new Sender(key);
Message message = new Message.Builder().build();
Result result = sender.send(message, clientID, 1);
System.out.println(result.toString());
這讓我發瘋。它顯示了在Android手機上註冊,甚至調用GCMIntentService類的onRegistered方法..但是當我嘗試發送郵件,它標誌一個「NotRegistered錯誤」 ...... 我不知道我在做什麼錯..請幫我出球員....
我不知道發生了什麼事。 但是,我重新安裝了Android的GCM附加程序,再次創建了一個全新的應用程序,這次它的工作原理! :) 我確實使用了 MulticastResult result = sender.send(message,devices,5); 而不是Result result = sender.send(message,clientID,1); 不知道,如果這是問題,但現在它的作品...! – user1657709
我認爲你重新安裝後得到它的原因是因爲你已經聲明瞭一個新的註冊ID。 – neferpitou