Getting Started
Kopieren Sie einen Setup-Vorschlag mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für diesen Plugin.
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 mit dem Titel „Kompatibilität“@capgo/capacitor-device-info erfordert Capacitor 8 oder höher (@capacitor/core >=8.0.0).
Installieren
Sektion mit dem Titel „Installieren“Sie können unsere AI-gestützte Einrichtung verwenden, um das Plugin zu installieren. Fügen Sie die Capgo Fähigkeiten Ihrem AI-Tool mit der folgenden Befehl hinzu:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsVerwenden Sie dann 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 “Import”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 ist delta-basiert. Die erste native Probe kann es überspringen; rufen Sie dann an getInfo() wieder später oder verwenden Sie die Überwachung, um nach dem zweiten Sample den befüllten CPU-Aufruf zu erhalten.
Abschnitt mit dem Titel “Stream-Updates”
Aktualisierungs-Streamconst 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);Abschnitt mit dem Titel “Überwachungsverhalten”
Abschnitt mit dem Titel “Import”intervalMsdefaults zu1000Millisekunden. Werte unter250Millisekunden werden auf250.emitImmediatelydefaults zutrue.- Setzen
durationMsodersampleCountAutomatisch die Überwachung beenden. - Calling
startMonitoring()Während die Überwachung aktiv ist, wird die Sitzung mit den neuen Optionen neu gestartet. - Every
deviceInfoUpdateeinschließt eine einsbezogenesequenceeine einsbezogenestartedAtZeitstempel, undelapsedMs.
Stoppen Sie Updates und entfernen Sie Listener
Abschnitt mit dem Titel „Updates stoppen und Listener entfernen“await DeviceInfo.stopMonitoring();await handle.remove();
// Or remove every listener registered on this plugin:await DeviceInfo.removeAllListeners();Überprüfen Sie den Zustand der Überwachung
Abschnitt mit dem Titel „Überwachungszustand überprüfen“const state = await DeviceInfo.isMonitoring();
if (state.monitoring) { console.log(state.samplesEmitted);}Sensorfelder einbinden
Abschnitt mit dem Titel „Sensorfelder einbinden“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, der Betriebssystem und die App-Sandbox das entsprechende Metrik freigeben.
Plattformhinweise
Abschnitt mit dem Titel “Plattformhinweise”- iOS benötigt keine Berechtigungen für die angezeigten Metriken. Es meldet die Verfügbarkeit der CoreMotion-Sensoren, aber nicht die Rohwerte der CPU- oder GPU-Temperatur.
- Android benötigt keine Berechtigungen für die angebotenen Metriken. CPU- und GPU-Temperaturen sind Schätzungen der thermischen Zonen.
- Die Unterstützung für Web ist bestmöglich und meldet leere Bord-Sensor-Arrays, da Browser die native Gerätesensoren nicht konsistent ausgeben.
API Referenz
Abschnitt mit dem Titel “API Referenz”| Methode | Rückgabe | Hinweise |
|---|---|---|
getInfo() | Promise<DeviceInfoSnapshot> | Ermittelt einen Snapshot. |
startMonitoring(options?) | Promise<StartMonitoringResult> | Startet periodische Snapshots oder startet einen aktiven Session mit neuen Optionen. |
stopMonitoring() | Promise<StopMonitoringResult> | Beendet die aktive Session. |
isMonitoring() | Promise<MonitoringState> | Gibt die aktuelle Sitzungszustand zurück. |
addListener('deviceInfoUpdate', listener) | Promise<PluginListenerHandle> | Registriert einen periodischen Snapshot-Listener. |
removeAllListeners() | Promise<void> | Entfernt jeden Listener, der auf dem Plugin registriert wurde. |
getPluginVersion() | Promise<PluginVersionResult> | Liest die native Pluginversion. |
PluginListenerHandle wird durch Capacitor bereitgestellt und hat remove() für die Entfernung des einzelnen Listeners.
Snapshot-Typen
Abschnitt mit dem Titel „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;}Die Größen sind in Byte angegeben, maxFrequencyHz ist Hertz und die Temperaturwerte sind in Celsius. usagePercent kann null bis das Plattform genügend Beispiele hat, um es 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 in Unix-Epoch-Millisekunden angegeben. 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 die Quelle ändert.
Weiter geht’s von Getting Started
Abschnitt mit dem Titel “Weiter geht’s von Getting Started”Wenn Sie Capgo verwenden Getting Started für Gerätediagnosen verwenden, verbinden Sie es mit @capgo/capacitor-Geräte-Info für eine Übersicht Mit @capgo/capacitor-device-info für die Tutorial-Seite @capgo/capacitor-Barometer für fokussierte Druckmessungen und @capgo/capacitor-Lichtsensor Beginnen Sie mit __CAPGO_KEEP_0__