Anleitung
Kopieren Sie eine Einrichtungsanweisung mit den Installationsanweisungen und der vollständigen Markdown-Guideline 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
Abschnitt mit dem Titel „Installieren“Sie können unsere AI-gestützte Einrichtung verwenden, um das Plugin zu installieren. Fügen Sie den Capgo-Fähigkeiten Ihrer AI-Anwendung mit folgendem Befehl hinzu:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsVerwenden Sie dann folgende Anweisung:
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 überspringen; rufen Sie getInfo() wieder später oder verwenden Sie die Überwachung, um nach der zweiten Probe den mit Belegung befüllten CPU-Aufruf zu erhalten.
Aktualisierungen streamen
Abschnitt mit dem Titel „Aktualisierungen streamen“const 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);Überwachungsverhalten
Abschnitt mit dem Titel „Überwachungsverhalten“intervalMsstandardmäßig1000Millisekunden. Werte unter250Millisekunden werden auf250.emitImmediatelystandardmäßigtrue.- Setzen
durationMsodersampleCountWählen Sie, ob Sie die Überwachung automatisch beenden möchten. - Anrufen
startMonitoring()während die Überwachung aktiv ist, startet die Sitzung mit den neuen Optionen neu. - Jedes
deviceInfoUpdateeinschließt eine einsbezogenesequence, die Sitzungstimestamp, undstartedAtBeenden Sie Updates und entfernen Sie ListenerelapsedMs.
Abschnitt mit dem Titel „Beenden Sie Updates und entfernen Sie Listener“
Zur Zwischenablage kopierenawait DeviceInfo.stopMonitoring();await handle.remove();
// Or remove every listener registered on this plugin:await DeviceInfo.removeAllListeners();Überprüfen Sie den Überwachungsstatus
Abschnitt: Überprüfen Sie den Überwachungsstatusconst state = await DeviceInfo.isMonitoring();
if (state.monitoring) { console.log(state.samplesEmitted);}Sensorfelder einrichten
Abschnitt: Sensorfelder einrichtenconst { 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 Anwendungs-App-Isolierung dieses Metrik ausgeben.
Plattformhinweise
Abschnitt: Plattformhinweise- Für iOS sind keine Berechtigungen erforderlich, um die ausgestellten Metriken zu überprüfen. Es wird die Verfügbarkeit von CoreMotion-Sensoren gemeldet, aber keine Rohwerte für CPU- oder GPU-Temperatur.
- Für Android sind keine Berechtigungen erforderlich, um die ausgestellten Metriken zu überprüfen. CPU- und GPU-Temperaturwerte sind bestmögliche thermische-Zonen-Lesungen.
- Die Unterstützung von Web ist bestmöglich und meldet leerere aufgebaute Sensorarrays, da Browser native Gerätesensoren nicht konsistent ausgeben.
API Referenz
Abschnitt mit dem Titel “API Referenz”| Methode | Rückgabewerte | Hinweise |
|---|---|---|
getInfo() | Promise<DeviceInfoSnapshot> | Einen 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> | Die native Pluginversion liest. |
PluginListenerHandle ist durch Capacitor und hat remove() für die Entfernung dieses einzelnen Hörers.
Schnappschuss-Typen
Abschnitt mit dem Titel „Schnappschuss-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 Byte, maxFrequencyHz ist Hertz und die Temperaturwerte sind Celsius. usagePercent werden null bis die Plattform genug Proben 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 der Sensordaten sind in Millisekunden als Unix-Epoche 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, timestamp, und elapsedMs sind Millisekunden. sequence beginnt bei 1 jeder Überwachungssitzung.
Wahrheitsquelle
Abschnitt mit dem Titel „Wahrheitsquelle“Diese Referenz folgt der öffentlichen API im Plugin- src/definitions.tsaktualisieren Sie diese Seite, wenn sich diese Quelle ändert.
Weiter zum Erste Schritt
Abschnitt mit dem Titel „Weiter zum Ersten Schritt“Wenn Sie Erste Schritt für Gerätediagnosen verwenden, verbinden Sie es mit @capgo/capacitor-geräte-info für eine Übersicht Verwendung von @capgo/capacitor-geräte-info für die Anleitung Verwendung von @capgo/capacitor-barometer für fokussierte Druckmessungen und Verwendung von @capgo/capacitor-licht-sensor für konzentrierte Lichtsensorwerte.