Getting Started
Eine Einrichtungsanweisung mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für dieses 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 mit dem Titel „Kompatibilität“@capgo/capacitor-device-info erfordert Capacitor 8 oder später (@capacitor/core >=8.0.0).
Installation
Abschnitt mit dem Titel „Installation“Sie können unsere KI-gestützte Einrichtung verwenden, um das Plugin zu installieren. Fügen Sie den Capgo-Fähigkeiten Ihrer KI-Zubehörstücke mit folgendem 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 „Importieren“import { DeviceInfo } from '@capgo/capacitor-device-info';Eine Snapshot lesen
Abschnitt mit dem Titel „Eine 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 auslassen; rufen Sie getInfo() wieder später oder verwenden Sie die Überwachung, um nach der zweiten Probe den mit Belegung gefüllten CPU-Aufruf zu erhalten.
Stream-Einträge
Abschnitt: Stream-Einträgeconst 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
Abschnitt: VerhaltensüberwachungintervalMsstandardmäßig1000Millisekunden. Werte unter250Millisekunden werden auf250.emitImmediatelystandardmäßigtrue.- Setzen
durationMsodersampleCountum die Überwachung automatisch zu beenden. - Während
startMonitoring()aktive Überwachung neu startet die Sitzung mit den neuen Optionen. - Jedes
deviceInfoUpdateeine eins-basiertesequence, die Sitzung’sstartedAtZeitstempel, undelapsedMs.
Stop Updates und entferne 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);}Sensorfelder aufbauen
Abschnitt mit dem Titel “Sensorfelder aufbauen”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, Betriebssystem und die App-Verwaltung das entsprechende Messwert freigeben.
Plattformhinweise
Abschnitt mit dem Titel “Plattformhinweise”- iOS benötigt keine Berechtigungen für die freigegebenen 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 freigegebenen Metriken. CPU- und GPU-Temperaturen sind bestmögliche thermische-Zonen-Lesungen.
- Web-Unterstützung ist bestmöglich und meldet leere Sensorfelder, da Browser die nativen Gerätesensoren nicht konsistent freigeben.
API Referenz
Abschnitt mit dem Titel “API Referenz”| Methode | Returns | Hinweise |
|---|---|---|
getInfo() | Promise<DeviceInfoSnapshot> | Eine Snapshot liest. |
startMonitoring(options?) | Promise<StartMonitoringResult> | Periodische Snapshots startet, oder eine aktive Sitzung mit neuen Optionen neu startet. |
stopMonitoring() | Promise<StopMonitoringResult> | Die aktive Sitzung beendet. |
isMonitoring() | Promise<MonitoringState> | Aktuelle Sitzungszustand zurückgibt. |
addListener('deviceInfoUpdate', listener) | Promise<PluginListenerHandle> | Ein periodischer Snapshot-Listener registriert. |
removeAllListeners() | Promise<void> | Alle auf dem Plugin registrierten Listener entfernt. |
getPluginVersion() | Promise<PluginVersionResult> | Native Plugin-Version liest. |
PluginListenerHandle durch Capacitor 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, maxFrequencyHz ist Hertz und die Temperaturwerte sind in Celsius. usagePercent kann null bis die 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;}Die Zeitstempel für die 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, timestamp, und elapsedMs sind Millisekunden. sequence beginnt bei 1 für jede Überwachungssitzung.
Hauptquelle
Abschnitt mit dem Titel “Hauptquelle”Diese Referenz folgt der öffentlichen API im Plugin’s src/definitions.tsAktualisieren Sie diese Seite, wenn sich diese Quelle ändert.
Fortsetzen von Getting Started
Abschnitt mit dem Titel “Fortsetzen von Getting Started”Wenn Sie Cloudflare verwenden Anleitung für den Start um Gerätediagnosen durchzuführen, verbinden Sie es mit @capgo/capacitor-geräteinfo für die Übersicht, Mit @capgo/capacitor-geräteinfo für die Tutorial-Seite, @capgo/capacitor-barometer für fokussierte Druckmessungen, und @capgo/capacitor-lichtsensor für fokussierte Lichtsensor-Messungen.