Android--史上最全、最完整,获取设备信息、获取手机唯一标识

DeviceLibray

获取Android设备详细信息

唯一ID实现方法

设备指纹算法:
第一部分:imei/meid,双卡时优先取meid,取不到meid的情况下取固定的imei(多个imei必须固定取一个,不能随机取其中之一),得到串1。
第二部分:设备串号serial不为空时,拼接android.os.Build.MANUFACTURER,得到串2。注意,如果串1和串2中的serial都为空,则取Mac地址+android.os.Build.MANUFACTURER作为串2(注意取法上需要兼容6.0、7.0、9.0以上)。
第三部分:静态硬件字段组合,依次拼接下面的字段,以"/"为分隔符号,进行32位md5小端法计算得到串3
android.os.Build.BOARD
android.os.Build.BRAND
android.os.Build.DEVICE
android.os.Build.HARDWARE
android.os.Build.MODEL
android:os.Build.PRODUCT
android.os.Build.TAGS
android.os.Build.TYPE
android.os.Build.USER
android.os.Build.SUPPORTED_ABIS 数组依次拼接
android.os.Build.CPU_ABI
screenWidth
screenHeight
screenDensity
screenDensityDpi
将串1、2、3依次拼接进行32位md5小端法计算得到device_id。
客户端需要缓存得到的device_id,注意存放的位置,在外部存储中以特定隐藏文件夹+隐藏文件的形式存放,包删除后文件不被删除,别的包安装后先读取指定这个隐藏文件的内容,有device_id则直接用,无则生成;

Step 1. Add the JitPack repository to your build file

allprojects {repositories {         ~~~~...maven { url 'https://jitpack.io' }}
}

Step 2. Add the dependency

dependencies {implementation 'com.github.z244370114:DeviceLibray:1.0.3'
}

3. 使用说明

(1)需要在Application的onCreate()方法里面调用UtilsApp.init(this)进行初始化上下文
(2)需要注意的是FileUtils.getSDDeviceTxt(),该方法根据算法得到唯一的device_id,判断设备唯一性

hardware(硬件)

字段名类型说明
modelString设备型号
brandString设备品牌
productString产品名称
releaseString系统版本
sdk_version_codeStringSDK版本号
physical_sizeString物理尺寸
cpu_typeStringcpu名字
cpu_minStringcpu最小频率
cpu_maxStringcpu最大频率
cpu_curStringcpu当前频率
manufacturer_nameString制造商
boardString主板名称
serial_numberString设备序列号
displayString显示屏参数
idString修订版本列表
bootloaderString系统引导加载程序版本号
finger_printString设备指纹
hostString执行代码编译的Host值
hardwareString硬件名
deviceString设备参数
userString执行代码编译的User值
radio_version


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部