2,225 bytes added,
09:29, 4 June 2020 The Device ID is a unique identifier of the device, which is fetched from the OS and used to uniquely identify devices [[HowTo:Restrict_Access_to_known_Devices_(Satellites) |restricting access to them]]. The type of ID and its origin vary by platform. The Device ID is also sent to the Ubik Web Service.
== Access Device ID ==
Accessing the Device ID is designed to be simple.
=== Android ===
On the legacy Android client, the Device ID can be found on the Information page. [[File:deviceid_android.png]]
=== UWP ===
On the Windows client, the Device ID can be accessed on the Connection Settings page. [[File:deviceid_uwp.png]]
=== Xamarin {{Version/XamarinSince|1.1}} ===
On the newer Xamarin clients (iOS and Android), the Device ID can be inspected on the General Settings page. [[File:deviceid_xamarin.png]]
== Technical Information ==
The Device ID should be unique enough to exclusively identify a device/client and shouldn't get lost if the app updates.
=== Windows ===
In the UWP/WinX client, the device id is created using the [https://docs.microsoft.com/en-us/uwp/api/windows.system.profile.hardwareidentification.getpackagespecifictoken| ASHWID identifier] encoded to a Base64 string.
=== Android ===
On the native Android client, the [https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID| ANDROID_ID (SSAID)] is accessed. Before Android 8, this ID was bound to a device for its lifetime. Since Android 8, the ID is different for every user (if the device has the multi-user feature enabled) and when the app is reinstalled.
On the Android Xamarin app, depending on the version, the [https://developer.android.com/reference/android/os/Build#SERIAL| Build.SERIAL] is accessed (below Android 8), and [https://developer.android.com/reference/android/os/Build#getSerial()| Build.getSerial] starting with Android 8, also requiring the <code>READ_PHONE_STATE</code> permission. With Android 10, the function only works for devices enrolled in an organization.
=== iOS ===
On iOS, the application makes use of the [https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor| identifierForVendor]. This is a GUID uniquely identifying a device to an app vendor.