5

I was working on an app (server-android client) that allow user to sign in from multiple android devices. When user logged in on a device, that device will be registered on server side, but I don't know how to avoid duplicate, so I was wondering that are there any chances to uniquely identify an android device? I think Google Play and Facebook can do that.

Đôn Nguyễn
  • 397
  • 1
  • 4
  • 6

2 Answers2

8

There are several options available, but there is no 100% guarantee that they will always work. See the android developer blog post: http://android-developers.blogspot.in/2011/03/identifying-app-installations.html

Best method mentioned is Settings.Secure.ANDROID_ID

Aman Gautam
  • 3,549
  • 2
  • 21
  • 25
2

You can check the IMEI or MAC address of the device.

for IMEI

TelephonyManager.getDeviceId will work

for MAC

WifiInfo.getMacAddress will work

Bugs Happen
  • 2,169
  • 4
  • 33
  • 59
stinepike
  • 54,068
  • 14
  • 92
  • 112
  • yes but how to get the wifi address through adb shell? – mn0102 Dec 06 '13 at 13:11
  • 1
    @StinePike I was using the imei. If users use this app https://play.google.com/store/apps/details?id=com.lbe.parallel.intl&referrer=af_tranid%3DPRiStLWOu5urVvBj5RutIA%26pid%3DPSwebsite then we will get wrong imei. – Prashanth Debbadwar Feb 15 '17 at 06:35
  • 2
    Just a note taken from Android official site: `It is generally not recommended to use MAC address for any form of user identification. As a result, as of Android M, local device MAC addresses (for example, Wifi and Bluetooth) are not available via third party APIs. The WifiInfo.getMacAddress() method and the BluetoothAdapter.getDefaultAdapter().getAddress() method will both return 02:00:00:00:00:00`. – Ankit Shubham Jul 19 '17 at 10:52
  • MAC Address can be fetched through NetworkInterface.getNetworkInterfaces() or DevicePolicyManager. – Stephen M -on strike- Apr 03 '18 at 19:23
  • 4
    Those no longer work in Android Q :( – kkazakov Mar 29 '19 at 15:24