如何获取Android设备唯一识别码

来自:http://syawlaus.com/remindme-%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96android%E8%AE%BE%E5%A4%87%E5%94%AF%E4%B8%80%E8%AF%86%E5%88%AB%E7%A0%81%EF%BC%9F/

如果我们想唯一识别一台Android设备,就需要获取设备的唯一识别码。怎么获取呢?

下面是Android设备一些可供选择的唯一识别码及其适用范围:

IMEI (International Mobile Equipment Identity Number,国际移动设备识别码)

  • 用于在手机网络中识别每一部独立的手机
  • 对于不在手机网络的设备(如Android平板),就不能使用IMEI来识别。

IMSI (International Mobile Subscriber Identity,国际移动用户识别码)

  • 它是在公众陆地移动电话网(PLMN)中用于唯一识别移动用户的一个号码,在GSM网络,这个号码通常被存放在SIM卡中
  • 跟IMEI一样,对于不在手机网络的设备就不能使用IMSI来识别。

Android ID

  • 64位的十六进制字符串,设备首次启动时会随时生成
  • 如果设备恢复了出厂设置,这个值可能会改变
  • 设备root了之后,这个值可以手动修改
  • Android 2.2发现bug,部分设备具有相同Android ID(9774d56d682e549c),模拟器的Android ID也是这个
  • 这个值有时会为null
  • 一般不推荐使用

Device ID

  • 唯一的设备ID,如GSM网络的IMEI,CDMA网络的MEID / ESN,可能返回null(API文档的描述)
  • 只对手机设备有效,对于不在手机网络的设备,会返回null
  • 获取到的Device ID值,即使设备恢复出厂设置也不会改变
  • 需要READ_PHONE_STATE权限
  • 某些设备的Device ID实现有bug,会返回0或*

Serial Number

  • 从Android 2.3开始(API level 9),可以通过android.os.Build.SERIAL获取
  • 需要READ_PHONE_STATE权限

WiFi MAC  Address

  • 不是所有Android设备都有WiFi
  • 对于有WiFi的设备,如果WiFi没有开启,可能获取不了WiFi MAC地址
  • 需要ACCESS_WIFI_STATE权限

BlueTooth MAC Address

  • 如果没有开启BlueTooth,可能获取不了BlueTooth MAC地址
  • 需要BLUETOOTH权限

UUID(Universally unique identifier,通用唯一标识符)

你可能感兴趣的:(Java)