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

如何获取android设备唯一识别码,第1张

DEVICE_ID

这是Android系统为开发者提供的用于标识手机设备的串号,也是各种方法中普适性较高的,可以说几乎所有的设备都可以返回这个串号,并且唯一性良好。

这个DEVICE_ID可以同通过下面的方法获取:

TelephonyManager tm = (TelephonyManager)getSystemService(ContextTELEPHONY_SERVICE); String DEVICE_ID = tmgetDeviceId();

它会根据不同的手机设备返回IMEI,MEID或者ESN码,但在使用的过程中有以下问题:

非手机设备:最开始搭载Android系统都手机设备,而现在也出现了非手机设备:如平板电脑、电子书、电视、音乐播放器等。这些设备没有通话的硬件功能,系统中也就没有TELEPHONY_SERVICE,自然也就无法通过上面的方法获得DEVICE_ID。

权限问题:获取DEVICE_ID需要READ_PHONE_STATE权限,如果只是为了获取DEVICE_ID而没有用到其他的通话功能,申请这个权限一来大才小用,二来部分用户会怀疑软件的安全性。

厂商定制系统中的Bug:少数手机设备上,由于该实现有漏洞,会返回垃圾,如:zeros或者asterisks

MAC ADDRESS

可以使用手机Wifi或蓝牙的MAC地址作为设备标识,但是并不推荐这么做,原因有以下两点:

硬件限制:并不是所有的设备都有Wifi和蓝牙硬件,硬件不存在自然也就得不到这一信息。

获取的限制:如果Wifi没有打开过,是无法获取其Mac地址的;而蓝牙是只有在打开的时候才能获取到其Mac地址。

获取Wifi Mac地址:

获取蓝牙 Mac地址:

Sim Serial Number

装有SIM卡的设备,可以通过下面的方法获取到Sim Serial Number:

TelephonyManager tm = (TelephonyManager)getSystemService(ContextTELEPHONY_SERVICE); String SimSerialNumber = tmgetSimSerialNumber();

注意:对于CDMA设备,返回的是一个空值!

ANDROID_ID

在设备首次启动时,系统会随机生成一个64位的数字,并把这个数字以16进制字符串的形式保存下来,这个16进制的字符串就是ANDROID_ID,当设备被wipe后该值会被重置。可以通过下面的方法获取:

import androidproviderSettings; String ANDROID_ID = SettingsSystemgetString(getContentResolver(), SettingsSystemANDROID_ID);

ANDROID_ID可以作为设备标识,但需要注意:

厂商定制系统的Bug:不同的设备可能会产生相同的ANDROID_ID:9774d56d682e549c。

厂商定制系统的Bug:有些设备返回的值为null。

设备差异:对于CDMA设备,ANDROID_ID和TelephonyManagergetDeviceId() 返回相同的值。

Serial Number

Android系统23版本以上可以通过下面的方法得到Serial Number,且非手机设备也可以通过该接口获取。

String SerialNumber = androidosBuildSERIAL;

首先你要获得root权限,然后连接电脑,确定驱动已经装好,然后。

在命令行里输入 adb shell 回车,你会看到$,然后输入SU,再回车,出现#

然后输入以下命令,最后的文件名是要删除的程序名称,请根据自己需要确定是否要删除该程序

/system/bin/rm /system/app/comhtcTwitterWidget

/system/bin/rm /system/app/HtcTwitter

/system/bin/rm /system/app/HtcFootprintsWidget

/system/bin/rm /system/app/HtcFootprints

/system/bin/rm /system/app/Stock

/system/bin/rm /system/app/comhtcStockWidget

/system/bin/rm /system/app/VVM

/system/bin/rm /system/app/Quickoffice

/system/bin/rm /system/app/PDFViewer

/system/bin/rm /system/app/Calculator

/system/bin/rm /system/app/Mail

/system/bin/rm /system/app/htcmailwidgets

/system/bin/rm /system/app/htcmsgwidgets

/system/bin/rm /system/app/HtcRingtoneTrimmer

/system/bin/rm /system/app/Flickr

/system/bin/rm /system/app/CityID

/system/bin/rm /system/app/FriendStream

/system/bin/rm /system/app/comhtcFriendStreamWidget

当手机使用者(即User)下载你(即开发者)的应用程序,在安装(Install)时,Android就会给予一个UID。

在Packagelist(放在/data/system)中存放着系统各个程序的user id。你可以这样获取:

PackageManager pm = getPackageManager();

ApplicationInfo ai = pmgetApplicationInfo("comgesoftbitlavendercloud", PackageManagerGET_ACTIVITIES);

Logd("!!", "!!" + aiuid);

这个uid和Linux下的uid含义可不同哦。

Android一直是单用户 *** 作系统,在Android 42中才加入了多用户支持。

安卓系统手机的device

id只要很简单的一个命令就可以查看:

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

service

monitor界面了。

安卓系统手机的device

id只要很简单的一个命令就可以查看:

gtalk

service

monitor界面

2、红圈圈便是device

id了。

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

以上就是关于如何获取android设备唯一识别码全部的内容,包括:如何获取android设备唯一识别码、Android 的app_id怎样获取、安卓开发中如何获取userId等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存