Android能够获取到唯一的设备ID吗

如上面所说

能,但是需要说明一下:
1. DEVICE_ID
假设我们确实需要用到真实设备的标识,可能就需要用到DEVICE_ID。在以前,我们的Android设备是手机,这个DEVICE_ID可以同通过TelephonyManager.getDeviceId()获取,它根据不同的手机设备返回IMEI,MEID或者ESN码,但它在使用的过程中会遇到很多问题:
非手机设备: 如果只带有Wifi的设备或者音乐播放器没有通话的硬件功能的话就没有这个DEVICE_ID
权限: 获取DEVICE_ID需要READ_PHONE_STATE权限,但如果我们只为了获取它,没有用到其他的通话功能,那这个权限有点大才小用
bug:在少数的一些手机设备上,该实现有漏洞,会返回垃圾,如:zeros或者asterisks的产品
2. MAC ADDRESS
我们也可以通过手机的Wifi或者蓝牙设备获取MAC ADDRESS作为DEVICE ID,但是并不建议这么做,因为并不是所有的设备都有Wifi,并且,如果Wifi没有打开,那硬件设备无法返回MAC ADDRESS.
3. Serial Number
在Android 2.3可以通过android.os.Build.SERIAL获取,非手机设备可以通过该接口获取。
4. ANDROID_ID
ANDROID_ID是设备第一次启动时产生和存储的64bit的一个数,当设备被wipe后该数重置
ANDROID_ID似乎是获取Device ID的一个好选择,但它也有缺陷:
它在Android <=2.1 or Android >=2.3的版本是可靠、稳定的,但在2.2的版本并不是100%可靠的
在主流厂商生产的设备上,有一个很经常的bug,就是每个设备都会产生相同的ANDROID_ID:9774d56d682e549c
5. Installtion ID : UUID
以上四种方式都有或多或少存在的一定的局限性或者bug,在这里,有另外一种方式解决,就是使用UUID,该方法无需访问设备的资源,也跟设备类型无关。
这种方式是通过在程序安装后第一次运行后生成一个ID实现的,但该方式跟设备唯一标识不一样,它会因为不同的应用程序而产生不同的ID,而不是设备唯一ID。因此经常用来标识在某个应用中的唯一ID(即Installtion ID),或者跟踪应用的安装数量。很幸运的,Google Developer Blog提供了这样的一个框架:
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-15
能 有个就MAC地址的 那个就是唯一的
Android能够获取到唯一的设备ID吗
手机可以利用IMEI(国际移动设备识别码)来作为唯一的设备标识。通过以下代码片段可以获取到IMEI码:TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);deviceId = tm.getDeviceId();而对于平板设备,由于缺乏IMEI码

如何获取Android设备唯一识别码
综上所述,通过正确配置权限和调用相关API,您能够有效地获取Android设备的唯一识别码。尽管存在一些潜在问题,但Device ID依然是追踪设备和验证用户身份的重要手段。

Android获取设备唯一ID的几种方式
如果设备不具备通话功能或无需加入READ_PHONE_STATE权限,可以通过读取其他硬件信息生成伪唯一ID。这种方式计算出的ID不是绝对唯一的,因为不同设备可能使用相同的硬件配置和ROM镜像,但这种情况发生的概率极低。生成伪唯一ID的方法是使用Build类获取相关信息并计算长度。例如,可以使用以下代码生成一个13位的...

安卓手机获取唯一识别码
安卓手机获取唯一识别码的方法有多种,但需注意没有一种方法能够保证在所有设备上都能获取到稳定且唯一的识别码。以下是一些常用的方法:IMEI(国际移动设备身份码):专门为GSM和WCDMA手机设计,可通过TelephonyManager类的getDeviceId()方法获取。仅对手机设备有效,平板电脑等无通话功能的设备无法获取。获取...

安卓怎么生成唯一设备标识
但获取IMEI需要READ_PHONE_STATE权限,且从Android 10.0开始,第三方应用将彻底禁止获取设备的IMEI。使用UUID结合其他标识符:如果单一标识符无法满足需求,可以考虑将多个标识符组合起来,并使用UUID(通用唯一识别码)生成一个新的唯一标识。例如,可以将Android ID、序列号和IMEI(如果可获取)组合起来,...

Android 获取设备唯一标识
Android设备唯一标识获取,是一个需要谨慎处理的问题。常见的解决方案如IMEI、Android ID和MAC地址,都存在各自的弊端。IMEI在Android 10中被明确禁止第三方应用获取;Android ID不具有真正的唯一性,容易因系统重置或不同厂商定制系统的差异导致变化;MAC地址在Android 10中具有随机化的特性,且随着系统更新,...

手机浏览器获取手机唯一标识
在Android系统的早期版本中,开发者可以获取到IMEI(国际移动设备识别码)和MAC地址等设备的唯一标识。但随着Android版本的更新和隐私政策的加强,从Android 6.0开始,获取IMEI号需要用户的主动授权。Android 7.0及以后的版本中,MAC地址可能会返回一个固定值,不再具有唯一性。现代Web应用程序:由于隐私政策...

如何获取Android设备唯一识别码
DEVICE_ID 这是Android系统为开发者提供的用于标识手机设备的串号,也是各种方法中普适性较高的,可以说几乎所有的设备都可以返回这个串号,并且唯一性良好。这个DEVICE_ID可以同通过下面的方法获取:TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String DEVICE_ID = ...

Device ID(设备标识符),设备ID有什么用?
Device ID,又称设备ID,是Android系统中用于唯一标识一台设备的标识符。它可以通过Android系统内置的TelephonyManager服务来获取,具有唯一性。Device ID的构成主要包括IMEI(国际移动设备识别码)和MEID\/ESN(移动设备识别码\/电子序列号)等关键信息。这些信息在设备出厂时就已经被固定下来,并且具有全球唯一性...

怎么获取android设备id
如果需要长期跟踪设备,建议结合其他标识符使用。兼容性问题:不同的Android版本和设备制造商可能会对设备ID的生成方式有所不同,因此在使用设备ID时需要注意兼容性问题。通过以上方法,你可以在你的Android应用程序中获取到设备的唯一标识符,并在需要的时候使用它,如跟踪用户行为、防止欺诈、保护用户数据等...

相似回答