怎样找自己的手机的设备ID号

怎样找自己的手机的设备ID号,第1张

有的时候会需要查看自己手机的Android Device ID,不借助软件直接使用命令也可以轻松的查看。(以安卓手机为例)

1、点击电话,启动拨号界面,然后输入“##8255##”即可进入GTalk Service Monitor界面。

2、在打开的Service Monitor界面找到Device ID字段即可查看到自己手机的Device ID信息,如下图;

我们知道,Android 基于Linux,是多用户 *** 作系统,我们使用 adb 工具测试时,经常使用 root 身份。那么,我们日常开机使用时,登录的用户id是什么呢?可以通过如下方式获取到当前正在运行的用户。

执行 adb shell pm list users 可以看到

其中 0 表示 user Id, 这条记录表示当前正在运行的帐号的 user id 是0,用户名是 name。

一、简介

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等厂商共同推出的设备识别字段,具有一定的权威性,可满足用户行为统计的使用场景。(可能存在的问题:部分厂商还没有支持,不过随着更新版本,越来越多的手机已经纳入到兼容范围了)

安卓系统手机的DEVICE ID只要很简单的一个命令就可以查看:

1、点击电话,启动拨号界面,然后输入“##8255##”即可进入GTalk Service Monitor界面了。

GTalk Service Monitor界面

2、红圈圈便是Device ID了。

以上就是关于怎样找自己的手机的设备ID号全部的内容,包括:怎样找自己的手机的设备ID号、获取当前使用Android的用户的Id、安卓12可以用的设备id等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9540565.html

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

发表评论

登录后才能评论

评论列表(0条)

保存