AndroidDeviceInfo

Struct AndroidDeviceInfo 

Source
pub struct AndroidDeviceInfo {
Show 119 fields pub sdkver: String, pub app_id: String, pub app_version: String, pub app_version_code: String, pub mid: String, pub chid: String, pub fts: i64, pub buvid_local: String, pub first: i32, pub proc: String, pub net: String, pub band: String, pub osver: String, pub t: i64, pub cpu_count: i32, pub model: String, pub brand: String, pub screen: String, pub cpu_model: String, pub btmac: String, pub boot: i64, pub emu: String, pub oid: String, pub network: String, pub mem: i64, pub sensor: String, pub cpu_freq: i64, pub cpu_vendor: String, pub sim: String, pub brightness: i32, pub props: HashMap<String, String>, pub sys: HashMap<String, String>, pub wifimac: String, pub adid: String, pub os: String, pub imei: String, pub cell: String, pub imsi: String, pub iccid: String, pub camcnt: i32, pub campx: String, pub total_space: i64, pub axposed: String, pub maps: String, pub files: String, pub virtual: String, pub virtualproc: String, pub gadid: String, pub glimit: String, pub apps: String, pub guid: String, pub uid: String, pub root: i32, pub camzoom: String, pub camlight: String, pub oaid: String, pub udid: String, pub vaid: String, pub aaid: String, pub androidapp20: String, pub androidappcnt: i32, pub androidsysapp20: String, pub battery: i32, pub battery_state: String, pub bssid: String, pub build_id: String, pub country_iso: String, pub free_memory: i64, pub fstorage: String, pub kernel_version: String, pub languages: String, pub mac: String, pub ssid: String, pub systemvolume: i32, pub wifimaclist: String, pub memory: i64, pub str_battery: String, pub is_root: bool, pub str_brightness: String, pub str_app_id: String, pub ip: String, pub user_agent: String, pub light_intensity: String, pub device_angle: Vec<f32>, pub gps_sensor: i64, pub speed_sensor: i64, pub linear_speed_sensor: i64, pub gyroscope_sensor: i64, pub biometric: i64, pub biometrics: Vec<String>, pub last_dump_ts: i64, pub location: String, pub country: String, pub city: String, pub data_activity_state: i32, pub data_connect_state: i32, pub data_network_type: i32, pub voice_network_type: i32, pub voice_service_state: i32, pub usb_connected: i32, pub adb_enabled: i32, pub ui_version: String, pub accessibility_service: Vec<String>, pub sensors_info: Vec<SensorInfo>, pub drmid: String, pub battery_present: bool, pub battery_technology: String, pub battery_temperature: i32, pub battery_voltage: i32, pub battery_plugged: i32, pub battery_health: i32, pub cpu_abi_list: Vec<String>, pub cpu_abi_libc: String, pub cpu_abi_libc64: String, pub cpu_processor: String, pub cpu_model_name: String, pub cpu_hardware: String, pub cpu_features: String, pub simulator_attr: String,
}

Fields§

§sdkver: String

?

§app_id: String

产品id 粉 白 蓝 直播姬 HD 海外 OTT 漫画 TV野版 小视频 网易漫画 网易漫画 网易漫画HD 国际版 东南亚版 1 2 3 4 5 6 7 8 9 10 11 12 13 14 30

§app_version: String

版本号, 如 “7.39.0”

§app_version_code: String

版本号, 如 “7390300”

§mid: String

用户 mid

§chid: String

渠道号, 如 “master”

§fts: i64

APP 首次安装启动时间戳

§buvid_local: String

此处实际为 fp, 但不知为何命名为 buvid_local

§first: i32

留空为 0

§proc: String

进程名, 如 “tv.danmaku.bili”

§net: String

网络信息, 为一数组直接 toString() 的结果 如 “”“[“dummy0,fe80::18d8:6ff:fe46:c2ba%dummy0,”, “wlan0,fe80::a0f4:6dff:fea8:2d37%wlan0,192.168.1.5,”, “lo,::1,127.0.0.1,”, “rmnet_ims00,fe80::5a02:3ff:fe04:512%rmnet_ims00,2409:815a:7c38:cee1:1773:d0b9:d163:b023,”]“”“

§band: String

手机无线电固件版本号(Build.getRadioVersion()). 如 21C20B686S000C000,21C20B686S000C000.

§osver: String

OS 版本号, 如 “12”

§t: i64

当前毫秒时间戳

§cpu_count: i32

CPU 逻辑核心计数

§model: String

手机 Model, 如 “NOH-AN01”

§brand: String

手机品牌, 如 “HUAWEI”

§screen: String

屏幕信息, 如 “1288,2646,560”, 即 “{width},{height},{pixel}”

§cpu_model: String

CPU 型号, 留空或根据实际情况确定

§btmac: String

蓝牙 MAC, 留空或根据实际情况确定

§boot: i64

Linux 内核 bootid

§emu: String

模拟器(?), 如 “000”

§oid: String

移动网络 MCC MNC, 如中国移动为 46007

§network: String

当前网络类型, 如 “WIFI”, 见 bilibili.metadata.network.NetworkType

§mem: i64

运行内存(Byte)

§sensor: String

传感器信息, 为一数组直接 toString() 的结果 如 “”“[“accelerometer-icm20690,invensense”, “akm-akm09918,akm”, “orientation,huawei”, “als-tcs3718,ams”, “proximity-tcs3718,ams”, “gyroscope-icm20690,invensense”, “gravity,huawei”, “linear Acceleration,huawei”, “rotation Vector,huawei”, “airpress-bmp280,bosch”, “HALL sensor,huawei”, “uncalibrated Magnetic Field,Asahi Kasei Microdevices”, “game Rotation Vector,huawei”, “uncalibrated Gyroscope,STMicroelectronics”, “significant Motion,huawei”, “step Detector,huawei”, “step counter,huawei”, “geomagnetic Rotation Vector,huawei”, “phonecall sensor,huawei”, “RPC sensor,huawei”, “agt,huawei”, “color sensor,huawei”, “uncalibrated Accelerometer,huawei”, “drop sensor,huawei”]“”“

§cpu_freq: i64

CPU 频率, 如 2045000

§cpu_vendor: String

CPU 架构, 如 “ARM”

§sim: String

?

§brightness: i32

光照传感器数值

§props: HashMap<String, String>

Android Build.prop 信息, key 包括 net.hostname, ro.boot.hardware, etc. 具体 key-value 需要技术手段自行确定

§sys: HashMap<String, String>

系统信息, key 包括 product, cpu_model_name, display, cpu_abi_list, etc. 具体 key-value 需要技术手段自行确定

§wifimac: String

Wifi MAC, 一般无法获取, 留空

§adid: String

Android ID

§os: String

OS 名称, 如 “android”

§imei: String

IMEI, 一般无法获取, 留空

§cell: String

?, 留空

§imsi: String

IMSI, 一般无法获取, 留空

§iccid: String

ICCID, 一般无法获取, 留空

§camcnt: i32

摄像头数量, 留空

§campx: String

摄像头像素, 留空

§total_space: i64

手机内置存储空间(Byte)

§axposed: String

?, 例如 “false”

§maps: String

?, 留空

§files: String

如: “/data/user/0/tv.danmaku.bili/files”

§virtual: String

是否为虚拟化(?), 如 “0”

§virtualproc: String

虚拟进程, 如 “[]”

§gadid: String

?, 留空

§glimit: String

?, 留空

§apps: String

设备安装的 APP 列表, 如 “[]”

§guid: String

客户端 GUID

§uid: String

?, 区分于用户 UID

§root: i32

?, 留空

§camzoom: String

摄像头放大倍数(?), 留空

§camlight: String

摄像头闪光灯(?), 留空

§oaid: String

OAID 匿名设备标识符, 参见 T/TAF 095-2021 安卓系统补充设备标识技术规范, 默认 “00000000-0000-0000-0000-000000000000”

§udid: String

UDID 设备唯一标识符, 参见 T/TAF 095-2021 安卓系统补充设备标识技术规范, 可留空

§vaid: String

VAID 开发者匿名设备标识符, 参见 T/TAF 095-2021 安卓系统补充设备标识技术规范, 可留空

§aaid: String

AAID, 应用匿名设备标识符, 参见 T/TAF 095-2021 安卓系统补充设备标识技术规范, 可留空

§androidapp20: String

?, 设置为 “[]”

§androidappcnt: i32

?, 留空

§androidsysapp20: String

?, 设置为 “[]”

§battery: i32

当前剩余电量, 如 100

§battery_state: String

Android 监听电量状态, 如 “BATTERY_STATUS_DISCHARGING”

§bssid: String

Wifi BSSID, 一般无法获取, 留空

§build_id: String

?, 如 “NOH-AN01 4.0.0.102(DEVC00E100R7P5)”

§country_iso: String

ISO 国家代码, 如 “CN”

§free_memory: i64

可用运行内存(Byte)

§fstorage: String

可用内置存储空间(Byte)

§kernel_version: String

Linux kernel version

§languages: String

语言, 如 “zh”

§mac: String

Wifi 网卡 MAC(?), 留空

§ssid: String

当前连接 Wifi 的 SSID, 留空

§systemvolume: i32

?, 留空

§wifimaclist: String

Wifi 网卡 MAC 列表(?), 留空

§memory: i64

运行内存(Byte)

§str_battery: String

当前剩余电量, 如 “100”

§is_root: bool

设备是否 Root(?), 留空

§str_brightness: String

光照传感器数值字符串

§str_app_id: String

产品id, 见 2

§ip: String

当前 IP(?), 留空

§user_agent: String

留空即可

§light_intensity: String

?, 如: “1.25”

§device_angle: Vec<f32>

设备 xyz 方向角度

§gps_sensor: i64

GPS 传感器数量(或者是否有 GPS 传感器?), 如 “1”

§speed_sensor: i64

速度传感器数量(或者是否有速度传感器?), 如 “1”

§linear_speed_sensor: i64

线性加速度传感器数量(或者是否有线性加速度传感器?), 如 “1”

§gyroscope_sensor: i64

陀螺仪传感器数量(或者是否有陀螺仪传感器?), 如 “1”

§biometric: i64

生物识别传感器数量(或者是否有生物识别传感器?), 如 “1”

§biometrics: Vec<String>

生物识别传感器类型(?), 如 “touchid”

§last_dump_ts: i64

上次 Crash Dump 时的毫秒时间戳

§location: String

留空即可

§country: String

留空即可

§city: String

留空即可

§data_activity_state: i32

?, 默认为 0

§data_connect_state: i32

?, 默认为 0

§data_network_type: i32

?, 默认为 0

§voice_network_type: i32

?, 默认为 0

§voice_service_state: i32

?, 默认为 0

§usb_connected: i32

USB 是否连接, 启用为 “1”, 否则为 “0”

§adb_enabled: i32

ADB 是否启用, 启用为 “1”, 否则为 “0”

§ui_version: String

系统 UI 软件版本(?), 如 “14.0.0”

§accessibility_service: Vec<String>

辅助服务

§sensors_info: Vec<SensorInfo>

传感器信息(需要和前面的 sensor 对应)

§drmid: String

DrmId

§battery_present: bool

是否存在电池

§battery_technology: String

电池技术, 如 “Li-poly”

§battery_temperature: i32

电池温度(m℃)

§battery_voltage: i32

电池电压(mV)

§battery_plugged: i32

电池是否被拔开(?), 可以为 0

§battery_health: i32

电池健康, 如 2

§cpu_abi_list: Vec<String>

留空即可

§cpu_abi_libc: String

留空即可

§cpu_abi_libc64: String

留空即可

§cpu_processor: String

留空即可

§cpu_model_name: String

留空即可

§cpu_hardware: String

留空即可

§cpu_features: String

留空即可

§simulator_attr: String

Trait Implementations§

Source§

impl Clone for AndroidDeviceInfo

Source§

fn clone(&self) -> AndroidDeviceInfo

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AndroidDeviceInfo

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AndroidDeviceInfo

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Message for AndroidDeviceInfo

Source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
Source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message to a buffer. Read more
Source§

fn encode_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message to a newly allocated buffer.
Source§

fn encode_length_delimited( &self, buf: &mut impl BufMut, ) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
Source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
Source§

fn decode(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes an instance of the message from a buffer. Read more
Source§

fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes a length-delimited instance of the message from the buffer.
Source§

fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
Source§

fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
Source§

impl PartialEq for AndroidDeviceInfo

Source§

fn eq(&self, other: &AndroidDeviceInfo) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for AndroidDeviceInfo

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more