Mulai Berlatih
Copas prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
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.
Kompatibilitas
Judul bagian “Kompatibilitas”@capgo/capacitor-device-info memerlukan Capacitor 8 atau lebih baru (@capacitor/core >=8.0.0).
Pasang
Judul bagian “Pasang”Anda dapat menggunakan Setup Bantuan AI kami untuk menginstal plugin. Tambahkan kemampuan Capgo ke alat AI Anda menggunakan perintah berikut:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLalu 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:
npm install @capgo/capacitor-device-infonpx cap syncImpor
Judul bagian “Impor”import { DeviceInfo } from '@capgo/capacitor-device-info';Baca satu snapshot
Judul bagian “Baca satu 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 berbasis delta. Sampel asli pertama dapat mengabaikannya; panggil getInfo() lagi nanti atau gunakan pengawasan untuk menerima penggunaan CPU yang diisi setelah sampel kedua.
Tampilkan update secara berkelanjutan
Judul bagian “Tampilkan update secara berkelanjutan”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);Mengawasi perilaku
Judul bagian “Mengawasi perilaku”intervalMsditetapkan secara default1000milisecond. Nilai di bawah250milisecond diperketat ke250.emitImmediatelyditetapkan secara defaulttrue.- Atur
durationMsatausampleCountuntuk menghentikan otomatis mengawasi. - Menghubungi
startMonitoring()sambil mengawasi aktif memulai ulang sesi dengan opsi baru. - Setiap
deviceInfoUpdatemengandung satu berdasarkansequence, sesi’sstartedAttimestamp, danelapsedMs.
Berhenti memperbarui dan hapus listener
Judul bagian “Berhenti memperbarui dan hapus listener”await DeviceInfo.stopMonitoring();await handle.remove();
// Or remove every listener registered on this plugin:await DeviceInfo.removeAllListeners();Periksa status pengawasan
Judul bagian “Periksa status pengawasan”const state = await DeviceInfo.isMonitoring();
if (state.monitoring) { console.log(state.samplesEmitted);}Mengaktifkan bidang sensor
Judul bagian “Mengaktifkan bidang sensor”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 adalah opsional. Mereka hanya ada ketika perangkat, OS, dan sandbox aplikasi mengungkapkan metrik tersebut.
Catatan platform
Judul bagian “Catatan platform”- 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.
- Dukungan web adalah upaya terbaik dan melaporkan array sensor onboard kosong karena browser tidak mengungkapkan sensor perangkat native secara konsisten.
API referensi
Judul bagian “API referensi”| Metode | Kembali | Catatan |
|---|---|---|
getInfo() | Promise<DeviceInfoSnapshot> | Membaca satu snapshot. |
startMonitoring(options?) | Promise<StartMonitoringResult> | Mengambil snapshot berkala, atau memulai ulang 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 pengguna snapshot berkala. |
removeAllListeners() | Promise<void> | Menghapus setiap pengguna yang terdaftar pada plugin. |
getPluginVersion() | Promise<PluginVersionResult> | Membaca versi plugin native. |
PluginListenerHandle disediakan oleh Capacitor dan memiliki remove() untuk menghapus pengguna individu tersebut.
Jenis snapshot
Bab berjudul “Jenis snapshot”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 adalah byte, maxFrequencyHz adalah hertz, dan nilai suhu dalam Celsius. usagePercent dapat null sampai platform tersebut memiliki sampel yang cukup untuk menghitungnya.
Jenis sensor
Bagian berjudul “Jenis sensor”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 dalam satuan milisecond Unix epoch. Satuan umum adalah Celsius, persen, hPa, lux, dan sentimeter.
Jenis pengawasan
Bagian berjudul “Jenis pengawasan”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 dari 1 untuk setiap sesi pemantauan.
Sumber Kebenaran
Judul bagian “Sumber Kebenaran”Referensi ini mengikuti sumber publik API di plugin’s src/definitions.tsPerbarui halaman ini ketika sumber tersebut berubah.
Lanjutkan dari Getting Started
Judul bagian “Lanjutkan dari Getting Started”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 tekanan bacaan yang terfokus, dan @capgo/capacitor-light-sensor untuk bacaan sensor cahaya yang terfokus.