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.