Android推送通知 - 如何获取设备ID

6

我卡在使用Google的云通知创建推送通知的过程中。

我正在处理的部分是应该获取设备ID,以便稍后在需要发送推送通知时使用该设备ID。

所以我有这段代码:

    GCMRegistrar.checkDevice(this);
    GCMRegistrar.checkManifest(this);

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

我认为这一行代码是

final String regId = GCMRegistrar.getRegistrationId(this);

我想获取设备ID,以便将其存储在某个地方。但是我认为我对这个实际上应该如何工作的方式完全偏离了轨道。请问有人能向我解释一下如何获取设备的唯一标识符,以便我可以将其存储用于进一步的推送通知吗?

1个回答

4

设备的“唯一标识”实际上是基于设备和应用程序安装的唯一标识。 GCMRegistrar.getRegistrationId(context)将提供此唯一ID。 如果您希望在注册后获取它,则需要重写GCMIntentService的onRegistered方法,该方法会把唯一ID传递给你。


啊,所以我并没有完全错,只需要覆盖onRegistered方法就可以了?你有没有一个有效地执行这个操作的示例代码链接? - Genadinik
您不需要覆盖onRegistered方法。ID会被保存,您可以使用GCMRegistrar方法获取它。ID是onRegistered的参数之一。只需在请求中附带该ID发送到您的服务器即可。 - toadzky
你的意思是使用这个方法:GCMRegistrar.getRegistrationId() ……如果是的话,它会返回一个空字符串。 - Genadinik
1
如果您的设备未注册,则会返回空字符串。请查看文档 - toadzky
GCMRegistrar类现已过时。您可以在开发者指南中了解更当前的使用GCM的方式(包括注册过程等)。 - hotshot309

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接