Why is DeviceId needed to register for push notifications?

Hi

Could someone explain to me why DeviceId is required to register for push notifications in backendless? Am I correct in interpreting the documentation that this is generally used to retrieve device registration information specific only to the handset to obtain the token?

On iOS deviceId can be obtained without permission but on Android to obtain the UUID would require Permissions.Android.READ_PHONE_STATE

{
“deviceToken” : “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”,
“deviceId” : “B51D4456-F39C-3720-8B2E-DC3093B8965C”,
“os” : “ANDROID”,
“osVersion”: “7.0”
}

Thank you

Steven

Hi Steven,

Device ID uniquely identifies your device on the server side. Tokens are temporary, they come and go, but the device ID is persistent.

On Android that id is obtained via “Build.SERIAL” which does not require any special permissions:
https://github.com/Backendless/Android-SDK/blob/master/src/com/backendless/Messaging.java#L86

Regards,
Mark

Hi Mark

Thanks for your reply. Does this mean then a deviceid can be a custom unique value? Unfortunately I am using the Fuse Mobile framework and cannot use the Android SDK so registrations are via the rest interface.

Regards

Steven

Hi.
DeviceID should be unique among all devices, that participates in sending messages. It mapped to device token that device receive from the push server. Generally it can be generated manually, but it uniqueness must be solid.