Registro do Google Cloud Messaging AUTHENTICATION_FAILED

Quero experimentar o serviço do Google Cloud Messaging (GCM) e estou com um problema no começo.

Eu recebo um erroAUTHENTICATION_FAILED ao tentar registrar um dispositivo no GCM. Eu procurei e tudo que encontrei foram variações da senha incorreta. Minha senha está correta e estou usando apenas uma conta.

Existem duas maneiras de implementar o cliente GCM no Android:

Biblioteca do GCM com jarro adicional, agora obsoleta.API do Google Play Services

Eu comecei com o segundo claro e peguei esse problema.

Eu pensei que o problema está no meu telefone, mas depois decidi tentar o primeiro caminho, que funcionou! No entanto, ele é obsoleto e requer um jarro adicional, que não parece ser o caminho certo.

Na tentativa de entender as razões do erro, decompilei o jar do Google Play Services e o comparei com a biblioteca do GCM.

Acontece que ambos têm um método semelhante, algo como:

void register(Context context, String senderIds) {
    Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER");
    intent.setPackage("com.google.android.gms"); // this one row are different
    setPackageNameExtra(context, intent);
    intent.putExtra("sender", senderIds);
    context.startService(intent);
}

A diferença em uma linha:

Na biblioteca do GCM, écom.google.android.gsf, Ondegsf é o Google Services Framework (eu acho), e funciona!

Na jarra da API do Google Play Services, écom.google.android.gms, E isso não funciona (erro AUTHENTICATION_FAILED).

Em seguida, na biblioteca do GCM, substituí "gsf" por "gms" e executei. E eu tenho o mesmo erro AUTHENTICATION_FAILED! Se eu entrar em outro pacote, então não está funcionando.

O que preciso fazer para que funcione? Devo configurar algo no telefone? Ou é um bug no Google Play Services? Alguém já encontrou um problema desses?

Desde já, obrigado!

questionAnswers(3)

yourAnswerToTheQuestion