Zum Inhalt springen

Getting Started

GitHub

@capgo/capacitor-device-info erfordert Capacitor 8 oder höher (@capacitor/core >=8.0.0).

Sie können unsere AI-gestützte Einrichtung verwenden, um das Plugin zu installieren. Fügen Sie den Capgo-Fähigkeiten Ihrer KI-Tool mithilfe der folgenden Befehl hinzu:

Terminalfenster
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Verwenden Sie dann die 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:

Terminalfenster
npm install @capgo/capacitor-device-info
npx cap sync
import { DeviceInfo } from '@capgo/capacitor-device-info';
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 Bevölkerung gefüllten CPU-Aufruf zu erhalten.

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);
  • intervalMs standardmäßig 1000 Millisekunden. Werte unter 250 Millisekunden werden auf 250.
  • emitImmediately standardmäßig true.
  • Setzen durationMs oder sampleCount Entscheiden Sie sich für eine der folgenden Optionen: Setzen Sie sich mit uns in Verbindung, um Ihre Fragen zu klären, oder erfahren Sie mehr über unsere Appflow-Integration. | Setzen Sie sich mit uns in Verbindung, um Ihre Fragen zu klären, oder erfahren Sie mehr über unsere Appflow-Integration. | Setzen Sie sich mit uns in Verbindung, um Ihre Fragen zu klären, oder erfahren Sie mehr über unsere Capawesome-Integration. | Unsere Experten helfen Ihnen bei der Lösung Ihrer Fragen und bei der Auswahl der richtigen Lösung für Ihr Unternehmen. | Appflow-Plugins oder
  • Automatische Überwachung beenden startMonitoring() Aufrufen
  • Während die Überwachung aktiv ist, wird die Sitzung mit den neuen Optionen neu gestartet. deviceInfoUpdate Jedes sequenceeinschließlich einer einbasierten startedAt , die Sitzung’s elapsedMs.
await DeviceInfo.stopMonitoring();
await handle.remove();
// Or remove every listener registered on this plugin:
await DeviceInfo.removeAllListeners();

Überwachungsstatus überprüfen

Abschnitt: Überwachungsstatus überprüfen
const state = await DeviceInfo.isMonitoring();
if (state.monitoring) {
console.log(state.samplesEmitted);
}

Sensoren für die Einbindung einrichten

Abschnitt: Sensoren für die Einbindung 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);

Sensoren sind optional. Sie sind nur dann vorhanden, wenn das Gerät, Betriebssystem und die App-Isolierung dieses Wert ausliefern.

  • Für iOS sind keine Berechtigungen erforderlich, um die ausgelieferten Metriken anzuzeigen. Es wird die Verfügbarkeit der CoreMotion-Sensoren angezeigt, aber keine Rohwerte für die CPU- oder GPU-Temperatur.
  • Für Android sind keine Berechtigungen erforderlich, um die ausgelieferten Metriken anzuzeigen. Die CPU- und GPU-Temperaturwerte sind Schätzungen der thermischen Zonen.
  • Die Unterstützung von Web ist Schwerpunktversuch und meldet leere Sensorenpools, da Browser die nativen Gerätesensoren nicht konsistent ausliefern.
MethodeRückgabewerteHinweise
getInfo()Promise<DeviceInfoSnapshot>Liest eine Snapshot-Aufnahme.
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 Sitzungsstatus 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 ist.
getPluginVersion()Promise<PluginVersionResult>Liest die native Plugin-Version.

PluginListenerHandle wird von Capacitor und hat remove() für die Entfernung dieses einzelnen Hörers.

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 bis zu dem Zeitpunkt, an dem die Plattform genügend Proben hat, um es zu berechnen. null Sensortypen

Abschnitt mit dem Titel „Sensortypen“

Zwischenablage kopieren
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 gemäß dem Unix-Epoch. Gemeinsame Einheiten sind Celsius, Prozent, hPa, Lux und Zentimeter.

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.

Diese Referenz folgt der öffentlichen API im Plugin. src/definitions.tsAktualisieren Sie diese Seite, wenn sich diese Quelle ändert.

Wenn Sie Anfangen für die Gerätediagnose verwenden, verbinden Sie es mit @capgo/capacitor-geräte-info für die Übersicht Verwendung von @capgo/capacitor-geräte-info für die Anleitung, @capgo/capacitor-barometer für präzise Druckmessungen, und @capgo/capacitor-licht-sensor für fokussierte Lichtsensormessungen.