DeviceInfo class

Available extensions

Constructors

DeviceInfo({String? deviceModel, Platform? platform, String? osVersion, FormFactor? formFactor, String? architecture, String? chipName, Int64? totalMemoryBytes, Int64? availableMemoryBytes, bool? hasNpu, int? npuCores, String? gpuFamily, double? batteryLevel, BatteryState? batteryState, bool? isLowPowerMode, int? coreCount, int? performanceCores, String? deviceFingerprint, Iterable<MapEntry<String, String>>? platformExtras})
factory
DeviceInfo.fromBuffer(List<int> data, [ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY])
factory
DeviceInfo.fromJson(String json, [ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY])
factory

Properties

architecture String
ABI name as the OS reports it: Android sends Build.SUPPORTED_ABIS0 ("arm64-v8a"), Apple "arm64", Web "wasm32". Kept a string because no industry API enumerates ABIs — but the spelling is the OS's, not ours.
getter/setter pair
availableMemoryBytes ↔ Int64
Free + reclaimable system RAM at snapshot time, in BYTES. 0 = UNKNOWN (the Web producer cannot read it). A consumer MUST NOT read 0 as "no memory left" and refuse to load.
getter/setter pair
batteryLevel double
Remaining charge as a fraction of full. ABSENT is the ONLY encoding of "unknown" — 0.0 means a flat battery, not an unreadable one. Producers bridging through rac_device_registration_info_t (which uses a negative sentinel) MUST map negative -> absent, never negative -> 0.
getter/setter pair
batteryState BatteryState
ABSENT when the platform reports no battery at all; UNSPECIFIED when a battery exists but its state could not be read. The C ABI member is documented NULL-if-unavailable, which is why this stays optional.
getter/setter pair
chipName String
getter/setter pair
coreCount int
getter/setter pair
deviceFingerprint String
getter/setter pair
deviceModel String
getter/setter pair
formFactor FormFactor
getter/setter pair
gpuFamily String
getter/setter pair
hashCode int
Calculates a hash code based on the contents of the protobuf.
no setterinherited
hasNpu bool
Dedicated neural accelerator present (ANE, Hexagon, APU, ...).
getter/setter pair
info_ → BuilderInfo
no setter
isFrozen bool
Returns true if this message is marked read-only. Otherwise false.
no setterinherited
isLowPowerMode bool
getter/setter pair
npuCores int
0 = none OR present-but-unreported.
getter/setter pair
osVersion String
getter/setter pair
performanceCores int
getter/setter pair
platform Platform
getter/setter pair
platformExtras → PbMap<String, String>
Vendor escape hatch, CLOSED key set: android: "manufacturer", "device_id", "os_build_id", "sdk_version", "android_api_level", "locale", "timezone" web: "has_webgpu", "has_shared_array_buffer"
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
totalMemoryBytes ↔ Int64
Physical RAM installed, in BYTES. Never the JVM heap cap — Android must read ActivityManager.MemoryInfo.totalMem, not Runtime.maxMemory().
getter/setter pair
unknownFields → UnknownFieldSet
no setterinherited

Methods

addExtension(Extension extension, Object? value) → void
Adds an extension field value to a repeated field.
inherited
check() → void
Throws a StateError if the message has required fields without a value.
inherited
clear() → void
Clears all data that was set in this message.
inherited
clearArchitecture() → void
clearAvailableMemoryBytes() → void
clearBatteryLevel() → void
clearBatteryState() → void
clearChipName() → void
clearCoreCount() → void
clearDeviceFingerprint() → void
clearDeviceModel() → void
clearExtension(Extension extension) → void
Clears an extension field and also removes the extension.
inherited
clearField(int tagNumber) → void
Clears the contents of a given field.
inherited
clearFormFactor() → void
clearGpuFamily() → void
clearHasNpu() → void
clearIsLowPowerMode() → void
clearNpuCores() → void
clearOsVersion() → void
clearPerformanceCores() → void
clearPlatform() → void
clearTotalMemoryBytes() → void
clone() DeviceInfo
Creates a deep copy of the fields in this message.
copyWith(void updates(DeviceInfo)) DeviceInfo
Apply updates to a copy of this message.
createEmptyInstance() DeviceInfo
Creates an empty instance of the same message type as this.
deepCopy() → T

Available on T, provided by the GeneratedMessageGenericExtensions extension

Returns a writable deep copy of this message.
extensionsAreInitialized() bool
inherited
freeze() → GeneratedMessage
Make this message read-only.
inherited
getDefaultForField(int tagNumber) → dynamic
Returns the default value for the given field.
inherited
getExtension(Extension extension) → dynamic
Returns the value of extension.
inherited
getField(int tagNumber) → dynamic
Returns the value of the field associated with tagNumber, or the default value if it is not set.
inherited
getFieldOrNull(int tagNumber) → dynamic
Returns the value of a field, ignoring any defaults.
inherited
getTagNumber(String fieldName) int?
inherited
hasArchitecture() bool
hasAvailableMemoryBytes() bool
hasBatteryLevel() bool
hasBatteryState() bool
hasChipName() bool
hasCoreCount() bool
hasDeviceFingerprint() bool
hasDeviceModel() bool
hasExtension(Extension extension) bool
Returns true if a value of extension is present.
inherited
hasField(int tagNumber) bool
Whether this message has a field associated with tagNumber.
inherited
hasFormFactor() bool
hasGpuFamily() bool
hasHasNpu() bool
hasIsLowPowerMode() bool
hasNpuCores() bool
hasOsVersion() bool
hasPerformanceCores() bool
hasPlatform() bool
hasRequiredFields() bool
Whether the message has required fields.
inherited
hasTotalMemoryBytes() bool
isInitialized() bool
Whether all required fields in the message and embedded messages are set.
inherited
mergeFromBuffer(List<int> input, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges serialized protocol buffer data into this message.
inherited
mergeFromCodedBufferReader(CodedBufferReader input, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Same as mergeFromBuffer, but takes a CodedBufferReader input.
inherited
mergeFromJson(String data, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges field values from data, a JSON object, encoded as described by GeneratedMessage.writeToJson.
inherited
mergeFromJsonMap(Map<String, dynamic> json, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges field values from a JSON object represented as a Dart map.
inherited
mergeFromMessage(GeneratedMessage other) → void
Merges the contents of the other into this message.
inherited
mergeFromProto3Json(Object? json, {TypeRegistry typeRegistry = const TypeRegistry.empty(), bool ignoreUnknownFields = false, bool supportNamesWithUnderscores = true, bool permissiveEnums = false}) → void
Merges field values from json, a JSON object using proto3 encoding.
inherited
mergeUnknownFields(UnknownFieldSet unknownFieldSet) → void
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
rebuild(void updates(T)) → T

Available on T, provided by the GeneratedMessageGenericExtensions extension

Apply updates to a copy of this message.
setExtension(Extension extension, Object value) → void
Sets the value of a non-repeated extension field to value.
inherited
setField(int tagNumber, Object value) → void
Sets the value of a field by its tagNumber.
inherited
toBuilder() → GeneratedMessage
Creates a writable, shallow copy of this message.
inherited
toDebugString() String
Returns a String representation of this message.
inherited
toProto3Json({TypeRegistry typeRegistry = const TypeRegistry.empty()}) Object?
Returns an Object representing Proto3 JSON serialization of this.
inherited
toString() String
Returns a String representation of this message.
inherited
validate() → void

Available on DeviceInfo, provided by the DeviceInfoValidate extension

writeToBuffer() Uint8List
Serialize the message as the protobuf binary format.
inherited
writeToCodedBufferWriter(CodedBufferWriter output) → void
Same as writeToBuffer, but serializes to the given CodedBufferWriter.
inherited
writeToJson() String
Returns a JSON string that encodes this message.
inherited
writeToJsonMap() Map<String, dynamic>
Returns the JSON encoding of this message as a Dart Map.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

create() DeviceInfo
getDefault() DeviceInfo