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(硬件)
| 字段名 | 类型 | 说明 |
|---|---|---|
| model | String | 设备型号 |
| brand | String | 设备品牌 |
| product | String | 产品名称 |
| release | String | 系统版本 |
| sdk_version_code | String | SDK版本号 |
| physical_size | String | 物理尺寸 |
| cpu_type | String | cpu名字 |
| cpu_min | String | cpu最小频率 |
| cpu_max | String | cpu最大频率 |
| cpu_cur | String | cpu当前频率 |
| manufacturer_name | String | 制造商 |
| board | String | 主板名称 |
| serial_number | String | 设备序列号 |
| display | String | 显示屏参数 |
| id | String | 修订版本列表 |
| bootloader | String | 系统引导加载程序版本号 |
| finger_print | String | 设备指纹 |
| host | String | 执行代码编译的Host值 |
| hardware | String | 硬件名 |
| device | String | 设备参数 |
| user | String | 执行代码编译的User值 |
| radio_version |
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
