如何查看自己安卓手机的Android Device ID

如何查看自己安卓手机的Android Device ID,第1张

1、打开拨号界面。

2、点击电话,启动拨号界面,然后输入“*#*#8255#*#*”即可进入GTalkServiceMonitor界面了。

扩展资料:

AndroidID用于唯一识别一部设备的一次刷机行为,虽然不能完全确定该设备的唯一性(真的唯一性是用IMEI号的),但是可以很大程度上过滤重复设备。

这是移动互联网广告行业,尤其是CPI广告的基础。设备ID非常重要。CPI广告是根据实际安装数量计费的,广告商可以使用androidid来排除重复安装。传递一个AndroidID直接影响到某些广告是否会被放置在某些位置。

在RTB行业中,有很多提供数据的第三方公司,他们根据AndroidID买卖数据,将各种数据对应给用户。

SecuregetString(getContentResolver(), SecureANDROID_ID) 这是获取Android设备ID的,API还提供了一些获取其他ID的借口,比如SIM卡等

最近在做一个OA考勤项目,里面有个需求是一个账号只允许绑定一台设备, 这就需要将设备唯一标识码与账号绑定在一起,咋一听 这还不So Easy啊,直接获取deviceID 不就好了。。。

咋一 *** 作也挺好。 可到了大面积的群体用户测试环节发现了几个问题。

简言之就是如果你的手机需要考虑Android9以上的设备,你就没办法通过获取系统提供的API完全的获取到设备唯一标识码,根据Android文档 唯一标识符最佳做法 你也许可以这样

呃 这个特殊运营商许可 和这个 READ_PRIVILEGED_PHONE_STATE 好像都不是我们一般的安卓应用能获取的到的。

想要能Android9以上又能不受到刷机,格式化的影响。 就只能 使用移动安全联盟(MSA)提出的补充设备标识

是由 移动安全联盟 提出的,包含以下三个标识:

缺点就是:并不是所有的品牌商都兼容了, 而且需要导入他们对应的包 。 这部分可参考 Android 10获取设备标识方案探究 这篇文章

特点: 如果格式化或者刷机,这个设备ID会更改(这个也是合理的)。

完善:可以在第一次生成后放入到内部存储和外部存储,下次进入先从内部存储获取,如果没有在去外部存储比较(App卸载,内部存储就没了)。 如果在没有就生成一个

如果你用的是真机,那么你可以获取手机的imei

imei号是每个手机的标识,是唯一的。

String imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))getDeviceId();

但是这个对模拟器不支持应该。

>

随着Google对隐私的重视以及Android10的逐渐普及,获取设备的唯一标识越来越来难,在Android10以前,Android设备唯一标识包含IMEI、AndroidID、DeviceID、Mac地址等,下面收集了一些唯一ID的获取方案:

获取方法:

这是Android系统为开发者提供的标识手机设备串号的方法,局限性:

可以使用手机WiFi或者蓝牙的Mac地址作为设备标识,Android 60以后通过 WifiManager 获取到的mac将是固定的:02:00:00:00:00:00 ,

再后来连读取 /sys/class/net/wlan0/address 也获取不到了。

现在只剩下面这种方法可以获取(没有开启wifi也可以获取到):

局限性:

设备首次启动时,系统会随机生成一个64位的数字,并将这个数字以16进制的形式保存下来,flutter官方组件device_info就是通过这个方式获取的,获取方式:

局限性:

获取方式:

局限性:

结合以上几点来看,单独采用其中某一个方案都不是很完美,所以 移动安全联盟MSA 搞了一个OAID,这个本质上也是一个设备的唯一标识,目前已经支持的厂商包括:华为、小米、OPPO、vivo、中兴、努比亚、魅族、联想、三星等

目前已经开发完成,项目地址: >

一、简介

1、设备ID:

简单来说就是一串符号(或者数字)类似于我们的身份z号,映射现实中硬件设备。排除特殊情况(模拟器等),设备ID和设备是一一对应的,我们称之为“唯一设备ID(Unique Device Identifier)

2、设备ID的作用:

关于设备ID的作用,大概可以分为下面几点:

统计需求

统计需求是设备ID最常见的用途,包括DAU, MAU的统计,行为统计,广告激活的统计等。

业务需求

设备ID通常也用于业务中。比如结合行为统计做用户画像,以为用户提供个性化的服务,大家感受比较明显的就是新闻类和电商类的APP了。

这类 *** 作,有利有弊,仁者见仁智者见智。

又如,定向推送,不一定是广告推送,错误修复,内测推送等也会用到设备ID。

还有是一些和特定业务结合的用途,比如构造分布式ID等。风控需求,设备ID还可用于防刷单,反作弊等。

当然,风控需求仅靠设备ID是无法完成的,通常需要建立一套反作弊系统。

其他的过多,不一一赘叙

3、对于Android平台而言,没有稳定的API可以让开发者获取到这样的设备ID,这样对id的获取便不是很友好,加之各种模拟器,获取不到的情况比比皆是。

下面我们简单介绍一下常用的设备ID及其获取方法

二、获取设备ID

1、ANDROID_ID

Android ID 是获取门槛最低的,不需要任何权限,64bit 的取值范围,唯一性算是很好的了。

但是不足之处也很明显:

1、刷机、root、恢复出厂设置等会使得 Android ID 改变;

2、Android 80之后,Android ID的规则发生了变化:

对于升级到80之前安装的应用,ANDROID_ID会保持不变。如果卸载后重新安装的话,ANDROID_ID将会改变。

对于安装在80系统的应用来说,ANDROID_ID根据应用签名和用户的不同而不同。ANDROID_ID的唯一决定于应用签名、用户和设备三者的组合。

两个规则导致的结果就是:

第一,如果用户安装APP设备是80以下,后来卸载了,升级到80之后又重装了应用,Android ID不一样;

第二,不同签名的APP,获取到的Android ID不一样。

其中第二点可能对于广告联盟之类的有所影响(如果彼此是用Android ID对比数据的话),所以Google文档中说“请使用Advertising ID”,

不过大家都知道,Google的服务在国内用不了。对Android ID做了约束,对隐私保护起到一定作用,并且用来做APP自己的活跃统计也还是没有问题的。

获取方法如下:

String android_id = SettingsSystemgetString(contextgetContentResolver(), SettingsSystemANDROID_ID);

1

1

2、IMEI

IMEI本该最理想的设备ID,具备唯一性,恢复出厂设置不会变化(真正的设备相关)。然而,获取IMEI需要 READ_PHONE_STATE 权限,估计大家也知道这个权限有多麻烦了。尤其是Android 60以后, 这类权限要动态申请,很多用户可能会选择拒绝授权。我们看到,有的APP不授权这个权限就无法使用, 这可能会降低用户对APP的好感度。

而且,Android 100 将彻底禁止第三方应用获取设备的IMEI, 即使申请了 READ_PHONE_STATE 权限。

所以,如果是新APP,不建议用IMEI作为设备标识;

如果已经用IMEI作为标识,要赶紧做兼容工作了,尤其是做新设备标识和IMEI的映射。

获取方法如下:

try {

TelephonyManager tm = (TelephonyManager)contextgetSystemService(ServiceTELEPHONY_SERVICE);

//如果双卡,获取第一张卡的

android_IMEI = tmgetDeviceId(0);

SharedPreferencesUtilsetPrefString(context, LxKeysID_IMEI, android_IMEI);

} catch (Exception e) {

eprintStackTrace();

}

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

3、MAC

获取MAC地址也是越来越困难了,

Android 60以后通过 WifiManager 获取到的mac将是固定的:02:00:00:00:00:00 ,

再后来连读取 /sys/class/net/wlan0/address 也获取不到了。

如今只剩下面这种方法可以获取(没有开启wifi也可以获取到):

public static String getWifiMac() {

try {

Enumeration<NetworkInterface> enumeration = NetworkInterfacegetNetworkInterfaces();

if (enumeration == null) {

return "";

}

while (enumerationhasMoreElements()) {

NetworkInterface netInterface = enumerationnextElement();

if (netInterfacegetName()equals("wlan0")) {

return formatMac(netInterfacegetHardwareAddress());

}

}

} catch (Exception e) {

Loge("tag", egetMessage(), e);

}

return "";

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

4、OAID

简介:

因传统的移动终端设备标识如国际移动设备识别码(IMEI)等已被部分国家认定为用户隐私的一部分,并存在被篡改和冒用的风险,所以在Android 10及后续版本中非厂商系统应用将无法获取IMEI、MAC等设备信息。无法获取IMEI会在用户行为统计过程中对设备识别产生一定影响。

近日移动安全联盟针对该问题联合国内手机厂商推出补充设备标准体系方案,选择OAID字段作为IMEI等的替代字段。OAID字段是由中国信通院联合华为、小米、OPPO、VIVO等厂商共同推出的设备识别字段,具有一定的权威性,可满足用户行为统计的使用场景。(可能存在的问题:部分厂商还没有支持,不过随着更新版本,越来越多的手机已经纳入到兼容范围了)

以上就是关于如何查看自己安卓手机的Android Device ID全部的内容,包括:如何查看自己安卓手机的Android Device ID、android 怎么获取设备号、android 获得设备唯一标识码(总有一款适合你)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9561190.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存