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

如上面所说

http://blog.csdn.net/boonya/article/details/39396331
Android的开发者在一些特定情况下都需要知道手机中的唯一设备ID。例如,跟踪应用程序的安装,生成用于复制保护的DRM时需要使用设备的唯一ID。在本文档结尾处提供了作为参考的示例代码片段。
范围
本文提供有关如何读取各种Android设备的 ID的介绍,用以使用标识号。本文假定用户已经安装了Android以及开发应用程序必要的工具。并且,本文假定用户已了解Android的基本知识。
简介
在搭载Android操作系统的设备中,已经存在好几种类型的设备标识号。先前的所有Android设备都具有电话功能,因此查找每部设备硬件唯一的IMEI,MEID,或ESN也很容易。但仅能使用Wifi的设备或音乐播放器没有电话硬件,所以没有这种类型的唯一标识号。本文阐述了如何读取不同Android设备的标识号。
检索Android设备ID各种方式
以下是Android设备不同类型的识别设备ID。
· 唯一编号(IMEI,MEID,ESN,IMSI)
· MAC地址
· 序列号
· ANDROID_ID

唯一编号(IMEI,MEID,ESN,IMSI)
说明在以前,当Android设备均作为电话使用时,寻找唯一标识号比较简单:()可用于找到(取决于网络技术)手机硬件唯一的IMEI,MEID,ESN和IMSI编号。
TelephonyManager.getDeviceId
IMEI,MEID,ESN,IMSI的定义如下:
•IMEI(国际移动设备识别码)唯一编号,用于识别 GSM,WCDMA手机以及一些卫星电话(移动设备识别码)全球唯一编号,用于识别CDMA移动电台设备的物理硬件,MEID出现的目的是取代ESN号段(电子序列号)(电子序列号)唯一编号,用于识别CDMA手机(国际移动用户识别码)与所有GSM和UMTS网络手机用户相关联的唯一识别编号如需要检索设备的ID,在项目中要使用以下代码:

•MEID
•ESN
•IMSI
import android.telephony.TelephonyManager;

import android.content.Context;

String imeistring = null;

String imsistring = null;

{

TelephonyManager telephonyManager;

telephonyManager =

( TelephonyManager )getSystemService( Context.TELEPHONY_SERVICE );

/*

* getDeviceId() function Returns the unique device ID.

* for example,the IMEI for GSM and the MEID or ESN for CDMA phones.

*/

imeistring = telephonyManager.getDeviceId();

/*

* getSubscriberId() function Returns the unique subscriber ID,

* for example, the IMSI for a GSM phone.

*/

imsistring = telephonyManager.getSubscriberId();

}
如要只读取手机的状态,则需添加READ_PHONE_STATE许可到AndroidManifest.xml文件中。
<uses-permission android:name="android.permission.READ_PHONE_ST

缺点
•Android设备要具有电话功能
•其工作不是很可靠
•序列号
•当其工作时,该值保留了设备的重置信息(“恢复出厂设置”),从而可以消除当客户删除自己设备上的信息,并把设备转另一个人时发生的错误。

Mac地址
说明
可通过检索找到设备的Wi - Fi或蓝牙硬件的Mac地址。但是,不推荐使用Mac地址作为唯一的标识号。
缺点设备要具备Wi – Fi功能(并非所有的设备都有Wi – Fi功能)如果设备目前正在使用Wi - Fi,则不能报告Mac地址

序列号
从Android 2.3(“姜饼”)开始,通过android.os.Build.SERIAL方法序列号可被使用。没有电话功能的设备也都需要上给出唯一的设备ID; 某些手机也可以需要这样做。序列号可以用于识别MID(移动互联网设备)或PMP(便携式媒体播放器),这两种设备都没有电话功能。通过读取系统属性值“ro.serialno”的方法,可以使用序列号作为设备ID 。
import java.lang.reflect.Method;

String serialnum = null;

try {

Class<?> c = Class.forName("android.os.SystemProperties");

Method get = c.getMethod("get", String.class, String.class );

serialnum = (String)( get.invoke(c, "ro.serialno", "unknown" ) );

}

catch (Exception ignored)

{

}
缺点

序列号无法在所有Android设备上使用。
ANDROID_ID
说明
更具体地说,Settings.Secure.ANDROID_ID 是一串64位的编码(十六进制的字符串),是随机生成的设备的第一个引导,其记录着一个固定值,通过它可以知道设备的寿命(在设备恢复出厂设置后,该值可能会改变)。 ANDROID_ID也可视为作为唯一设备标识号的一个好选择。如要检索用于设备ID 的ANDROID_ID,请参阅下面的示例代码
String androidId = Settings.Secure.getString(getContentResolver(),Settings.Secure.ANDROID_ID);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-17
可以,
唯一编号有很多种(IMEI,MEID,ESN,IMSI) 比如: telephonyManager = ( TelephonyManager )getSystemService( Context.TELEPHONY_SERVICE ); imeistring = telephonyManager.getDeviceId();
第2个回答  2015-07-17
拨号盘输入*#06#
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系统的早期版本中,开发者可以获取到IMEI(国际移动设备识别码)和MAC地址等设备的唯一标识。但随着Android版本的更新和隐私政策的加强,从Android 6.0开始,获取IMEI号需要用户的主动授权。Android 7.0及以后的版本中,MAC地址可能会返回一个固定值,不再具有唯一性。现代Web应用程序:由于隐私政策...

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

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

如何获取Android设备唯一识别码
在手机拨号盘中输入*#06#,即可弹出MEID即唯一的设备识别码。依次点击设定---关于设备---状态。现在可以看到安卓设备的IMEI(国际移动设备识别码)唯一编号。一共有五大方法:(推荐第五种)设备ID(DEVICE_ID)Android系统为开发者提供的用于标识手机设备的标识码。在设备首次启动时,系统会随机生成一个...

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

相似回答