title | description |
---|---|
Device |
Get device information. |
This is a fork of the official cordova-plugin-device with the goal to add the possibility to read the serial number of Zebra devices running on Android 10 or higher by using Zebra's DeviceIdentifiersWrapper.
This plugin defines a global device
object, which describes the device's hardware and software.
Although the object is in the global scope, it is not available until after the deviceready
event.
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(device.cordova);
}
cordova plugin add @mobisys-internal/cordova-plugin-device
- device.cordova
- device.model
- device.platform
- device.uuid
- device.version
- device.manufacturer
- device.isVirtual
- device.serial
- device.sdkLevel
Get the version of Cordova running on the device.
- Android
- Browser
- iOS
- Windows
- OSX
The device.model
returns the name of the device's model or
product. The value is set by the device manufacturer and may be
different across versions of the same product.
- Android
- Browser
- iOS
- Windows
- OSX
// Android: Nexus One returns "Passion" (Nexus One code name)
// Motorola Droid returns "voles"
// BlackBerry: Torch 9800 returns "9800"
// Browser: Google Chrome returns "Chrome"
// Safari returns "Safari"
// iOS: for the iPad Mini, returns iPad2,5; iPhone 5 is iPhone 5,1. See http://theiphonewiki.com/wiki/index.php?title=Models
// OSX: returns "x86_64"
//
var model = device.model;
- Gets the product name instead of the model name, which is often the production code name. For example, the Nexus One returns
Passion
, and Motorola Droid returnsvoles
.
Get the device's operating system name.
var string = device.platform;
- Android
- Browser
- iOS
- Windows
- OSX
// Depending on the device, a few examples are:
// - "Android"
// - "BlackBerry 10"
// - "browser"
// - "iOS"
// - "WinCE"
// - "Tizen"
// - "Mac OS X"
var devicePlatform = device.platform;
Get the device's Universally Unique Identifier (UUID).
var string = device.uuid;
The details of how a UUID is generated are determined by the device manufacturer and are specific to the device's platform or model.
- Android
- iOS
- Windows
- OSX
// Android: Returns a random 64-bit integer (as a string, again!)
//
// BlackBerry: Returns the PIN number of the device
// This is a nine-digit unique integer (as a string, though!)
//
// iPhone: (Paraphrased from the UIDevice Class documentation)
// Returns the [UIDevice identifierForVendor] UUID which is unique and the same for all apps installed by the same vendor. However the UUID can be different if the user deletes all apps from the vendor and then reinstalls it.
// Windows Phone 7 : Returns a hash of device+current user,
// if the user is not defined, a guid is generated and will persist until the app is uninstalled
// Tizen: returns the device IMEI (International Mobile Equipment Identity or IMEI is a number
// unique to every GSM and UMTS mobile phone.
var deviceID = device.uuid;
The uuid
on Android is a 64-bit integer (expressed as a hexadecimal string). The behaviour of this uuid
is different on two different OS versions-
For < Android 8.0 (API level 26)
In versions of the platform lower than Android 8.0, the uuid
is randomly generated when the user first sets up the device and should remain constant for the lifetime of the user's device.
For Android 8.0 or higher
The above behaviour was changed in Android 8.0. Read it in detail here.
On Android 8.0 and higher versions, the uuid
will be unique to each combination of app-signing key, user, and device. The value is scoped by signing key and user. The value may change if a factory reset is performed on the device or if an APK signing key changes.
Read more here https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID.
The uuid
on iOS uses the identifierForVendor property. It is unique to the device across the same vendor, but will be different for different vendors and will change if all apps from the vendor are deleted and then reinstalled.
Refer here for details.
The UUID will be the same if app is restored from a backup or iCloud as it is saved in preferences. Users using older versions of this plugin will still receive the same previous UUID generated by another means as it will be retrieved from preferences.
The uuid
on OSX is generated automatically if it does not exist yet and is stored in the standardUserDefaults
in the CDVUUID
property.
Get the operating system version.
var string = device.version;
- Android 2.1+
- Browser
- iOS
- Windows
- OSX
// Android: Froyo OS would return "2.2"
// Eclair OS would return "2.1", "2.0.1", or "2.0"
// Version can also return update level "2.1-update1"
//
// BlackBerry: Torch 9800 using OS 6.0 would return "6.0.0.600"
//
// Browser: Returns version number for the browser
//
// iPhone: iOS 3.2 returns "3.2"
//
// Windows Phone 7: returns current OS version number, ex. on Mango returns 7.10.7720
// Windows 8: return the current OS version, ex on Windows 8.1 returns 6.3.9600.16384
// Tizen: returns "TIZEN_20120425_2"
// OSX: El Capitan would return "10.11.2"
//
var deviceVersion = device.version;
Get the device's manufacturer.
var string = device.manufacturer;
- Android
- iOS
- Windows
// Android: Motorola XT1032 would return "motorola"
// BlackBerry: returns "BlackBerry"
// iPhone: returns "Apple"
//
var deviceManufacturer = device.manufacturer;
whether the device is running on a simulator.
var isSim = device.isVirtual;
- Android 2.1+
- Browser
- iOS
- Windows
- OSX
The isVirtual
property on OS X and Browser always returns false.
Get the device hardware serial number (SERIAL).
var string = device.serial;
- Android
- OSX
As of Android 9, the underlying native API that powered the uuid
property is deprecated and will always return UNKNOWN
without proper permissions. Cordova have never implemented handling the required permissions. As of Android 10, all non-resettable device identifiers are no longer readable by normal applications and will always return UNKNOWN
. More information can be read here.
Get the SDK version of the software currently running on this hardware device (SDK_INT). On Android this returns a number >= 1
, on all other platforms this returns 0
.
var string = device.sdkLevel;
- Android