Anleitung zum Starten
Einen Setup-Befehl mit den Installationsanweisungen und der vollständigen Markdown-Anleitung 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
Benötigt __CAPGO_KEEP_0__ 8 oder höher (@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 die Capgo-Fähigkeiten zu Ihrem AI-Tool hinzu, indem Sie den folgenden Befehl verwenden:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsDann verwenden Sie den folgenden Vorschlag:
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';Lesen Sie einen Snapshot
Sektion mit dem Titel “Lesen Sie einen Snapshot”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() ist delta-basiert. Die erste native Probe kann es auslassen; rufen Sie
Aktualisierungsströme
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);Sektion mit dem Titel “Stream-Updates”
Section titled “Monitoring behavior”intervalMsdefaults zu1000standardmäßig auf Millisekunden. Werte unterhalb von250Millisekunden werden auf250.emitImmediatelystandardmäßigtrue.- Setzen
durationMsorsampleCountAutomatisch die Überwachung beenden. - Calling
startMonitoring()Während die Überwachung aktiv ist, wird die Sitzung mit den neuen Optionen neu gestartet. - Every
deviceInfoUpdateeinschließt eine einsbezogenesequenceeinschließlich einer einbetoniertenstartedAt, die SitzungelapsedMs.
Stop Updates und entferne 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();Überwachungsstatus überprüfen
Abschnitt mit dem Titel ‘Überwachungsstatus überprüfen’const state = await DeviceInfo.isMonitoring();
if (state.monitoring) { console.log(state.samplesEmitted);}Sensordatenfelder einrichten
Abschnitt mit dem Titel ‘Sensordatenfelder einrichten’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);Sensordatenfelder sind optional. Sie sind nur dann vorhanden, wenn das Gerät, Betriebssystem und die App-Box das Metrik freigeben.
Plattformhinweise
Abschnitt mit dem Titel ‘Plattformhinweise’- iOS benötigt keine Berechtigungen für die freigegebenen 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 ausgelieferten Metriken. CPU- und GPU-Temperaturen sind bestmögliche thermische-Zonen-Lesungen.
- 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> | Eine Snapshot-Lese durchführt. |
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> | Die aktuelle Sitzungszustand zurückgibt. |
addListener('deviceInfoUpdate', listener) | Promise<PluginListenerHandle> | Ein periodischer Snapshot-Listener registriert. |
removeAllListeners() | Promise<void> | Entfernt alle registrierten Listener auf dem Plugin. |
getPluginVersion() | Promise<PluginVersionResult> | Liest die native Pluginversion. |
PluginListenerHandle ist durch Capacitor und hat remove() für die Entfernung des einzelnen Listeners.
Snapshot-Typen
Sektion 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;}Größen sind in Byte. maxFrequencyHz Die Größen sind in Byte angegeben. usagePercent kann sein 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.
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 der Quellcode ändert.
Fortsetzen von Getting Started
Sektion mit dem Titel “Fortsetzen von Getting Started”Wenn Sie das Gerätdiagnose-Plugin verwenden Getting Started mit dem Gerätdiagnose-Plugin verbinden Sie es mit @capgo/capacitor-geräte-info zur Übersicht @capgo/capacitor-geräte-info verwenden für die Tutorial-Seite @capgo/capacitor-Barometer Für konzentrierte Druckmessungen und @capgo/capacitor-Lichtsensor für konzentrierte Lichtsensor-Messungen. Starten Sie mit __CAPGO_KEEP_0__