Lebih cepat ke konten

Pemula

GitHub

@capgo/capacitor-device-info memerlukan Capacitor 8 atau lebih baru (@capacitor/core >=8.0.0).

Anda dapat menggunakan Pengaturan Bantuan AI untuk menginstal plugin. Tambahkan keterampilan Capgo ke alat AI Anda menggunakan perintah berikut:

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

Lalu gunakan prompt berikut:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-device-info` plugin in my project.

Untuk pengaturan manual, instal paket dan sinkronkan proyek native:

Jendela terminal
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 berbasis delta. Sampel asli pertama dapat mengabaikannya; panggil getInfo() lagi nanti atau gunakan pengawasan untuk menerima penggunaan CPU yang diisi setelah sampel kedua.

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 berdasarkan 1000 milidetik. Nilai di bawah 250 milidetik diberi tanda batas pada 250.
  • emitImmediately berdasarkan true.
  • Mengatur durationMs atau sampleCount Mengapa Anda harus memilih antara beberapa pilihan?
  • Mengapa Anda harus memilih antara beberapa pilihan? startMonitoring() Mengapa Anda harus memilih antara beberapa pilihan?
  • Mengapa Anda harus memilih antara beberapa pilihan? deviceInfoUpdate Mengapa Anda harus memilih antara beberapa pilihan? sequenceMenghentikan pemantauan secara otomatis. startedAt Panggilan elapsedMs.

Saat pemantauan aktif, restart sesi dengan opsi baru.

Masing-masing
await DeviceInfo.stopMonitoring();
await handle.remove();
// Or remove every listener registered on this plugin:
await DeviceInfo.removeAllListeners();
const state = await DeviceInfo.isMonitoring();
if (state.monitoring) {
console.log(state.samplesEmitted);
}
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);

Bidang sensor bersifat opsional. Mereka hanya ada ketika perangkat, OS, dan sandbox aplikasi mengungkapkan metrik tersebut.

  • iOS tidak memerlukan izin untuk metrik yang terbuka. Ini melaporkan ketersediaan sensor CoreMotion tetapi tidak suhu CPU atau GPU mentah.
  • Android tidak memerlukan izin untuk metrik yang terbuka. Suhu CPU dan GPU adalah bacaan zona termal yang paling baik upaya.
  • Support web adalah upaya terbaik dan melaporkan array sensor onboard kosong karena browser tidak mengungkapkan sensor perangkat asli secara konsisten.
MetodeKembaliCatatan
getInfo()Promise<DeviceInfoSnapshot>Membaca satu snapshot.
startMonitoring(options?)Promise<StartMonitoringResult>Mengaktifkan snapshot berulang, atau memulai kembali sesi aktif dengan opsi baru.
stopMonitoring()Promise<StopMonitoringResult>Menghentikan sesi aktif.
isMonitoring()Promise<MonitoringState>Mengembalikan status sesi saat ini.
addListener('deviceInfoUpdate', listener)Promise<PluginListenerHandle>Mendaftarkan seorang pendengar snapshot berulang.
removeAllListeners()Promise<void>Menghapus setiap pendengar yang didaftarkan pada plugin.
getPluginVersion()Promise<PluginVersionResult>Membaca versi plugin native.

PluginListenerHandle disediakan oleh Capacitor dan memiliki remove() untuk menghapus pendengar individu tersebut.

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;
}

Ukuran-ukuran dalam byte, maxFrequencyHz frekuensi dalam hertz, dan nilai suhu dalam Celsius. usagePercent bisa null sampai platform memiliki cukup sampel untuk menghitungnya.

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;
}

Waktu pembacaan sensor adalah milisecond Unix epoch. Unit umum adalah Celsius, persen, hPa, lux, dan sentimeter.

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, dan elapsedMs adalah milisecond. sequence dimulai pada 1 untuk setiap sesi pengawasan.

Referensi ini mengikuti sumber publik API dalam plugin’s src/definitions.ts. Perbarui halaman ini ketika sumber tersebut berubah.

Jika Anda menggunakan Getting Started untuk diagnostik perangkat, hubungkannya dengan @capgo/capacitor-device-info untuk ringkasan, Menggunakan @capgo/capacitor-device-info untuk halaman tutorial, @capgo/capacitor-barometer untuk bacaan tekanan yang fokus, dan @capgo/capacitor-light-sensor untuk membaca data sensor cahaya terfokus.