Einstieg
Eine Einrichtungsvorlage mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-device-info`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/device-info/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Kompatibilität
Abschnitt "Kompatibilität"@capgo/capacitor-device-info erfordert Capacitor 8 oder später (@capacitor/core >=8.0.0).
Installieren
Abschnitt "Installieren"Sie können unsere AI-gestützte Einrichtung verwenden, um das Plugin zu installieren. Fügen Sie den Capgo-Fähigkeiten Ihrer AI-Werkzeugleiste hinzu, indem Sie die folgende Befehlszeile verwenden:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsVerwenden Sie dann die folgende Anfrage:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-device-info` plugin in my project.Für eine manuelle Einrichtung installieren Sie das Paket und synchronisieren Sie die native Projekte:
npm install @capgo/capacitor-device-infonpx cap syncImportieren
Abschnitt mit dem Titel „Importieren“import { DeviceInfo } from '@capgo/capacitor-device-info';Einen Snapshot lesen
Abschnitt mit dem Titel „Einen Snapshot lesen“const snapshot = await DeviceInfo.getInfo();
console.log(snapshot.cpu.cores);console.log(snapshot.memory.usedPercent);console.log(snapshot.storage.freeBytes);console.log(snapshot.sensors?.pressureHpa);cpu.usagePercent Es ist delta-basiert. Die erste native Probe kann es überspringen; später nochmal aufrufen oder die Überwachung verwenden, um nach der zweiten Probe den mit Belegung gefüllten CPU-Aufruf zu erhalten. getInfo() Stream-Updates
Abschnitt mit dem Titel „Stream-Updates“
Zur Zwischenablage kopierenconst handle = await DeviceInfo.addListener('deviceInfoUpdate', (sample) => { console.log(sample.sequence, sample.elapsedMs); console.log(sample.cpu.usagePercent); console.log(sample.sensors?.readings);});
const session = await DeviceInfo.startMonitoring({ intervalMs: 1000, emitImmediately: true,});
console.log(session.intervalMs, session.startedAt);Verhaltensüberwachung
Überschrift: VerhaltensüberwachungintervalMsstandardmäßig1000Millisekunden. Werte unter250Millisekunden werden auf250.emitImmediatelystandardmäßigtrue.- Setzen
durationMsodersampleCountum die Überwachung automatisch zu beenden. - Aufrufen
startMonitoring()während die Überwachung aktiv ist, startet die Sitzung mit den neuen Optionen neu. - Jedes
deviceInfoUpdateenthält eine einbasierendesequence, die Sitzung’sstartedAtZeitstempel, undelapsedMs.
Stoppt Updates und entfernt Listener
Abschnitt mit dem Titel “Stop updates and remove listeners”await DeviceInfo.stopMonitoring();await handle.remove();
// Or remove every listener registered on this plugin:await DeviceInfo.removeAllListeners();Überprüfe den Überwachungsstatus
Abschnitt mit dem Titel “Check monitoring state”const state = await DeviceInfo.isMonitoring();
if (state.monitoring) { console.log(state.samplesEmitted);}Sensorenfelder einbinden
Abschnitt mit dem Titel “Onboard sensor fields”const { sensors, cpu, gpu } = await DeviceInfo.getInfo();
console.log(cpu.temperatureCelsius);console.log(gpu?.temperatureCelsius);console.log(sensors?.batteryTemperatureCelsius);console.log(sensors?.ambientTemperatureCelsius);console.log(sensors?.relativeHumidityPercent);console.log(sensors?.pressureHpa);console.log(sensors?.illuminanceLux);console.log(sensors?.proximityDistanceCm);console.log(sensors?.availableSensors);Sensorfelder sind optional. Sie sind nur dann vorhanden, wenn das Gerät, die Betriebssystem und die App-Box das Metrik offenlegen.
Plattformhinweise
Abschnitt mit dem Titel „Plattformhinweise“- iOS benötigt keine Berechtigungen für die offengelegten Metriken. Es meldet die Verfügbarkeit von CoreMotion-Sensoren, aber nicht die Rohwerte von CPU- oder GPU-Temperatur.
- Android benötigt keine Berechtigungen für die offengelegten Metriken. CPU- und GPU-Temperaturen sind bestmögliche thermische-Zonen-Lesungen.
- Die Unterstützung von Web ist bestmöglich und meldet leere Bord-Sensor-Arrays, da Browser die nativen Gerätesensoren nicht konsistent offenlegen.
API Referenz
Abschnitt mit dem Titel „API Referenz“| Methode | Rückgabe | Hinweise |
|---|---|---|
getInfo() | Promise<DeviceInfoSnapshot> | Liest einen Snapshot. |
startMonitoring(options?) | Promise<StartMonitoringResult> | Startet periodische Snapshots oder startet eine aktive Sitzung mit neuen Optionen. |
stopMonitoring() | Promise<StopMonitoringResult> | Beendet die aktive Sitzung. |
isMonitoring() | Promise<MonitoringState> | Gibt den aktuellen Sitzungszustand zurück. |
addListener('deviceInfoUpdate', listener) | Promise<PluginListenerHandle> | Registriert einen periodischen Snapshot-Hörer. |
removeAllListeners() | Promise<void> | Entfernt jeden Hörer, der auf dem Plugin registriert wurde. |
getPluginVersion() | Promise<PluginVersionResult> | Liest die native Pluginversion. |
PluginListenerHandle wird von Capacitor und hat remove() für die Entfernung dieses einzelnen Hörers.
Snapshot-Typen
Überschrift “Snapshot-Typen”interface CpuInfo { cores: number; activeCores?: number; architecture?: string; model?: string; usagePercent?: number | null; maxFrequencyHz?: number; temperatureCelsius?: number;}
interface MemoryInfo { totalBytes?: number; freeBytes?: number; usedBytes?: number; usedPercent?: number; appUsedBytes?: number; appLimitBytes?: number; lowMemory?: boolean; pressure?: 'normal' | 'warning' | 'critical' | 'unknown';}
interface StorageInfo { totalBytes?: number; freeBytes?: number; usedBytes?: number; usedPercent?: number;}
interface GpuInfo { api?: 'metal' | 'opengl' | 'webgl' | 'unknown'; vendor?: string; renderer?: string; version?: string; maxTextureSize?: number; temperatureCelsius?: number;}
type ThermalState = 'nominal' | 'fair' | 'serious' | 'critical' | 'unknown';
interface DeviceInfoSnapshot { timestamp: number; platform: 'ios' | 'android' | 'web'; cpu: CpuInfo; memory: MemoryInfo; storage: StorageInfo; gpu?: GpuInfo; thermalState?: ThermalState; lowPowerMode?: boolean; sensors?: OnboardSensorsInfo;}Größen sind Bytes, maxFrequencyHz ist Hertz und Temperaturwerte sind Celsius. usagePercent kann sein null bis die Plattform genügend Beispiele hat, um sie zu berechnen.
Sensortypen
Abschnitt mit dem Titel „Sensortypen“interface OnboardSensorDescriptor { type: string; name?: string; vendor?: string; platformType?: number; maximumRange?: number; resolution?: number; powerMilliamp?: number; minDelayMicroseconds?: number; wakeUp?: boolean;}
interface OnboardSensorReading { type: string; unit: string; value: number; name?: string; timestamp?: number;}
interface OnboardSensorsInfo { availableSensors?: OnboardSensorDescriptor[]; readings?: OnboardSensorReading[]; batteryTemperatureCelsius?: number; ambientTemperatureCelsius?: number; relativeHumidityPercent?: number; pressureHpa?: number; illuminanceLux?: number; proximityDistanceCm?: number;}Sensordaten sind Unix-Epoch-Millisekunden. Gemeinsame Einheiten sind Celsius, Prozent, hPa, Lux und Zentimeter.
Überwachungstypen
Abschnitt mit dem Titel „Überwachungstypen“interface MonitoringOptions { intervalMs?: number; durationMs?: number; sampleCount?: number; emitImmediately?: boolean;}
interface StartMonitoringResult { monitoring: boolean; intervalMs: number; startedAt: number;}
interface StopMonitoringResult { monitoring: boolean;}
interface MonitoringState { monitoring: boolean; intervalMs?: number; startedAt?: number; samplesEmitted?: number;}
interface DeviceInfoUpdate extends DeviceInfoSnapshot { sequence: number; startedAt: number; elapsedMs: number;}
interface PluginVersionResult { version: string;}startedAt, timestampund elapsedMs sind Millisekunden. sequence beginnt bei 1 für jede Überwachungssitzung.
Quelle der Wahrheit
Abschnitt mit dem Titel “Quelle der Wahrheit”Diese Referenz folgt der öffentlichen API im Plugin’s src/definitions.tsAktualisieren Sie diese Seite, wenn sich diese Quelle ändert.
Bleiben Sie bei Getting Started
Abschnitt mit dem Titel “Bleiben Sie bei Getting Started”Wenn Sie " Getting Started für Gerätediagnosen verwenden, verbinden Sie es mit @capgo/capacitor-geräte-info für die Übersicht Mit @capgo/capacitor-Geräteinformationen für die Anleitung Mit @capgo/capacitor-Barometer für konzentrierte Druckmessungen Mit @capgo/capacitor-Lichtsensor für konzentrierte Lichtsensormessungen