文档中心
推送对象目前支持四种:RegID、别名、userAccount、标签。
RegID:针对单一设备推送消息。应用调用MiPushClient类的静态方法registerPush注册小米推送服务,注册的结果将通过PushMessageReceiver继承类的onCommandResult方法和onReceiveRegisterResult中的MiPushCommandMessage参数对象message传到客户端。当message对象的command等于MiPushClient.COMMAND_REGISTER并且message对象的resultCode等于ErrorCode.SUCCESS时,message对象commandArguments包含了服务器返回的RegID。
RegID是由服务器端生成的,能够唯一标识某台手机上的某个应用。 应用在获取到RegID后,需要将RegID上报到应用的服务器,此时应用服务端就可以利用RegID向客户端发送消息。
别名:针对单一设备推送消息。应用只有在成功注册小米推送服务后才能调用MiPushClient类的静态方法setAlias设置别名。同样,设置别名的结果将通过PushMessageReceiver继承类的onCommandResult方法中的MiPushCommandMessage参数对象message传到客户端。
成功设置别名后,服务器就可以通过这个别名将消息推送到对应的设备上。 利用别名向设备推送消息的方法不需要应用服务器保存客户端上传的RegID。开发者可以根据业务的需要给不同设备设置不同的别名。 注:一台设备可以设置多个不同的别名,而一个别名只能对应某一台设备。如果多台设备设置同一个别名,那么只有最后设置的一台设备生效。
userAccount:针对多个设备推送消息。应用只有在成功注册小米推送服务后才能调用MiPushClient类的静态方法setUserAccount设置userAccount。同样,设置userAccount的结果将通过PushMessageReceiver继承类的onCommandResult方法中的MiPushCommandMessage参数对象message传到客户端。
开发者可以在不同设备上设置同一个userAccount。然后使用Server SDK给该userAccount发送消息;此时,所有设置了该userAccount的设备都可以收到消息。
标签:针对多个设备推送消息。应用只有成功注册小米推送服务后才能调用MiPushClient类的静态方法subscribe订阅标签。同样,订阅标签的结果将通过PushMessageReceiver继承类的onCommandResult方法中的MiPushCommandMessage参数对象message传到客户端。
开发者可以结合自己的业务特征,给用户打上不同的标签(Topic)。在消息的推送过程中,开发者结合每条消息的内容和目标用户群,选择每条消息所对应的标签,可以进行更精准的定向推送。 注:一台设备可以订阅多个不同的标签,并且一个标签可以对应多台设备,这点和别名不同。
根据小米开发文档,总结如下:
韦恩图