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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)