Android - 史上最も完成度が高く、デバイス情報を取得し、携帯電話の固有の識別を取得します

デバイスライブラリ

Android デバイスの詳細を取得する

Flutter版DeviceLibray

https://github.com/z244370114/devicesinfo

ユニークIDの実装方法

デバイスの指紋アルゴリズム:
パート 1: imei/meid。デュアル カードには Meid が優先され、meid を取得できない場合は固定 imei が使用され (複数の imei を固定する必要があり、1 つをランダムに選択することはできません)、文字列 1 が取得されます。
2 番目の部分: デバイスのシリアル番号 Serial が空でない場合、android.os.Build.MANUFACTURER を結合して文字列 2 を取得します。文字列 1 と文字列 2 のシリアルが両方とも空の場合は、Mac アドレス + android.os.Build.MANUFACTURER を文字列 2 として取得することに注意してください (メソッドは 6.0、7.0、および 9.0 以降と互換性がある必要があることに注意してください)。
3 番目の部分: 静的ハードウェア フィールドの組み合わせ。区切り文字として「/」を使用して次のフィールドを順番に結合し、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 をキャッシュし、保存場所に注意し、外部ストレージ内の特定の隠しフォルダー + 隠しファイルの形式で保存する必要があります。パッケージが削除された後もファイルは削除されず、指定されたデバイス ID を読み取る必要があります。他のパッケージをインストールした後、最初に隠しファイルが表示されます。コンテンツ、device_id がある場合は直接使用され、ない場合は生成されます。

ステップ 1. JitPack リポジトリをビルド ファイルに追加する

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

ステップ 2. 依存関係を追加する

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

3. 使用上の注意

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

ハードウェア (ハードウェア)

フィールド名 タイプ 説明する
モデル デバイスモデル
ブランド 機器ブランド
製品 商品名
リリース システムバージョン
SDK_バージョンコード SDKのバージョン番号
物理サイズ 物理的なサイズ
cpu_type CPU名
cpu_min CPUの最小周波数
cpu_max CPUの最大周波数
cpu_cur CPU電流周波数
メーカー名 メーカー
ボード マザーボード名
シリアルナンバー シリアル番号を工夫する
画面 表示パラメータ
ID リビジョンリスト
ブートローダー システム ブートローダーのバージョン番号
指紋 デバイスの指紋
ホスト コードコンパイルを実行するためのホスト値
ハードウェア ハードウェア名
デバイス デバイスパラメータ
ユーザー コードコンパイルを実行するためのユーザー値
ラジオバージョン 無線ファームウェアのバージョン
タグ ビルドを説明するラベル
時間 コンパイル時間
タイプ ビルダータイプ
ベースOS ベースオペレーティングシステムを構築する
ベースバンドバージョン ベースバンドバージョン
解決 デバイスの解像度
画面密度 画面密度(画素比:0.75/1.0/1.5/2.0)
画面密度_dpi 画面密度 (1 インチあたりのピクセル数: 120/160/240/320)
cpu_abi デバイス命令セット名の取得
cpu_abi2 2 番目の命令セット名を取得します
終了 携帯電話の CPU アーキテクチャ、サポートされる命令セット
is_タブレット 整数 タブレットかどうか (1: はい、0: いいえ)

general_data (一般データ)

フィールド名 タイプ 説明する
and_id 安卓ID
gaid String GAID
network_operator_name String 网络运营商名称
network_operator String 当前注册运营商的数字名称(MCC + MNC)
network_type String 当前网络类型:
NETWORK_2G
NETWORK_3G
NETWORK_4G
NETWORK_5G
NETWORK_WIFI
phone_type String
mcc String Mcc / IMSI MCC(移动国家代码)
bluetooth_mac String 蓝牙mac地址
mnc String Mnc / IMSI MNC(移动网络代码)
locale_iso_3_language String 语言环境的三字母缩写
locale_iso_3_country String 此地区的国家/地区的缩写
time_zone_id String 时区的ID
locale_display_language String 用户显示的语言环境语言的名称
cid String 基站编号
dns String
uuid String 设备标识符UUID
slot_count int 支持卡槽数量(sdk_version>=23才可取值,否则为0)
meid String 移动设备识别码 , 卡槽移动设备身份码1(android 10及以上无法取)
imei2 String 卡槽移动设备身份码2(android 10及以上无法取)
mac String mac地址
language String 本地语言
ui_mode_type String 当前设备支持的UI类型
UI_MODE_TYPE_UNDEFINED
UI_MODE_TYPE_NORMAL
UI_MODE_TYPE_DESK
UI_MODE_TYPE_CAR
UI_MODE_TYPE_TELEVISION
UI_MODE_TYPE_APPLIANCE
UI_MODE_TYPE_WATCH
UI_MODE_TYPE_VR_HEADSET
security_patch String 安全补丁更新日期

sim_card

字段名 类型 说明
sim_count int 设备当前sim卡数量
imsi1 String sim卡1移动用户身份
sim_country_iso1 String sim卡1ISO国家代码等同于SIM提供商的国家代码
sim_serial_number1 String sim卡1的序列号
number1 String sim卡1对应手机号
imsi2 String sim卡2移动用户身份
sim_country_iso2 String sim卡2ISO国家代码等同于SIM提供商的国家代码
sim_serial_number2 String sim卡2的序列号
number2 String sim卡2对应手机号

storage(存储)

字段名 类型 说明
device_id String 关联设备表下deviceId
ram_total_size long 运行内存总大小(单位byte)
ram_usable_size long 运行内存可用大小(单位byte)
internal_storage_total long 内部存储总空间(单位byte)
internal_storage_usable long 内部存储可用空间(单位byte)
memory_card_size long sd卡总空间(单位byte)
memory_card_size_use long sd卡已用空间(单位byte)

other_data(其它数据)

字段名 类型 说明
root_jailbreak Int 是否root(0:不是;1:是)
simulator Int 是否为模拟器(0:不是;1:是)
keyboard String 底部是否有物理按键:有:1;无:0
dbm String 手机的信号强度(>-90,越大信号越强;""表示未取到)
last_boot_time Long 最后一次开机时间,以毫秒为单位
is_using_vpn Int 是否使用vpn(0:不是;1:是)
vpn_address String vpn代理地址
is_using_proxy_port Int 是否使用代理(0:不是;1:是)
http_proxy_host_port String http代理host:port
is_usb_debug Int 是否开启debug调试(0:不是;1:是)
is_mock_location Int 是否允许位置模拟(0:不是;1:是)
ringer_mode Int
0:RINGER_MODE_SILENT(静音模式)
1:RINGER_MODE_VIBRATE(震动模式)
2:RINGER_MODE_NORMAL(铃音模式)
is_airplane_mode Int 是否开启飞行模式(0:不是;1:是)

applist(app安装)

字段名 类型 说明
app_name String 已安装应用:APP名称
package_name String 已安装应用:包名
in_time Long 已安装应用:安装时间
up_time Long 已安装应用:最后更新时间
version_name String 版本名称
version_code Int 版本号
flags Int 应用标签
app_type Int 是否系统应用(1:系统应用;0:非系统应用)
special_permisson_list List 获取app特殊权限项

contact(联系人)

字段名 类型 说明
contact_display_name String 联系人名称
number String 联系人列表:电话号码
up_time Long 联系人列表:更新时间
last_time_contacted Long 与联系人最后联系时间
times_contacted int 联系次数
starred int 是否收藏联系人(1:收藏;0:未收藏)
email String 电子邮件地址

GPS(定位)-客户端改动

字段名 类型 说明
latitude String 维度
longitude String 经度
addressDetails String GPS详细地址

media_files(媒体文件)

字段名 类型 说明
audio_internal Int 音频内部文件个数
audio_external Int 音频外部文件个数
images_internal Int 图片内部文件个数
images_external Int 图片外部文件个数
video_internal Int 视频内部文件个数
video_external Int 视频外部文件个数
download_files Int 下载的文件个数
contact_group int 联系⼈小组个数(基数默认偏大,会算上自带群组名)

network(网络)

字段名 类型 说明
ip String 路由器IP
router_name String 路由器名字(Server根据当前wifi的bssid查)
current_wifi[].bssid String 当前的wifi BSSID
current_wifi[].ssid String 当前的wifi SSID
current_wifi[].name String wifi名称
current_wifi[].mac String 当前的wifi mac地址
configured_wifi[].bssid String BSSID / 配置wifi BSSID
configured_wifi[].ssid String SSID / 配置wifi SSID
configured_wifi[].name String wifi名称

battery_status(电池)

字段名 类型 说明
is_charging int 是否正在充电(1:未知状态;2:充电中;3:放电中;4:未充电;5:充满)
battery_pct Double 电池百分⽐(0-100)
charge_type int 1:BATTERY_PLUGGED_AC(充电器)
2:BATTERY_PLUGGED_USB(USB充电)
4:BATTERY_PLUGGED_ANY(其它)
battery_health int 1: BATTERY_HEALTH_UNKNOWN (不明)
2: BATTERY_HEALTH_GOOD (良好)
3: BATTERY_HEALTH_OVERHEAT (過熱)
4: BATTERY_HEALTH_DEAD (電力なし)
5: BATTERY_HEALTH_OVER_VOLTAGE (過電圧)
6: BATTERY_HEALTH_UNSPECIFIED_FAILU RE (異常)既知のエラー) 7:
BATTERY_HEALTH_COLD (温度が低すぎます)
バッテリー温度 ダブル バッテリー温度(0.1単位、359などは35.9℃を意味します)
画面の明るさ ダブル 画面の明るさ (0-255)

センサー[ ] (センサー)

フィールド名 タイプ 説明する
センサーリスト[].type 整数 センサーの種類
センサーリスト[].name センサー名
sensor_lists[].version 整数 センサーのバージョン番号
sensor_lists[].vendor 業者名
センサーリスト[].max_range 浮く センサー最大値
sensor_lists[].min_delay 浮く センサー最小値
sensor_lists[].power 浮く センサーパワー
sensor_lists[].resolution 浮く センサーの精度

プロジェクトアドレス: https://github.com/z244370114/DeviceLibray

おすすめ

転載: blog.csdn.net/u013290250/article/details/118580373