SystemInfo.deviceUniqueIdentifier returns IMEI on Android?

After searching the Unity forums and Unity Answers, I’ve seen a few people mention that
SystemInfo.deviceUniqueIdentifier returns the IMEI of an Android device. I haven’t yet seen any official confirmation from Unity Technologies on this (continuing to look).

I need to add an ad network’s conversion tracking logic to Unity 3.5 built Android app.

When I try using SystemInfo.deviceUniqueIdentifier in my C# class it returns a number in the following format:


However, if I dial *#06# and press Call on my test HTC Inspire 4G, the phone tells me my IMEI number looks similar to this:


The HTC Inspire 4G is running Android 2.3.3 and is currently working over WiFi, not hooked up to a cellular network of any kind. However, it still has a TelephonyManager since it used to be connected to an AT&T account.

Does anyone have any ideas? Am I missing something here?

The magic is that when using READ_PHONE_STATE permission IMEI returned, otherwise Android_ID

string IMEI = TM.Call(“getDeviceId”);
imeiNumber2.text = "2 " + IMEI;

As well add below line in your Androidmanifest.xml file. and your Androidmanifest.xml file must be at Assets-Plugins-Android-Androidmanifest.xml.


add above line in your Androidmanifest.xml file and your androidmanifest.xml file must be at Assets-Plugin-Android- Androidmanifest.xml