Getting Started
Salin pesan 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
Bab berjudul “Kompatibilitas”@capgo/capacitor-device-info memerlukan Capacitor 8 atau lebih baru (@capacitor/core >=8.0.0).
Pasang
Bab berjudul “Pasang”Anda dapat menggunakan Pengaturan Bantuan AI kami untuk menginstal plugin. Tambahkan keterampilan Capgo ke alat AI Anda menggunakan perintah berikut:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsKemudian 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 syncImport
Bab berjudul “Import”import { DeviceInfo } from '@capgo/capacitor-device-info';Baca satu snapshot
Bab berjudul “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 native pertama dapat melupakan itu; panggil getInfo() lagi nanti atau gunakan monitoring untuk menerima penggunaan CPU yang diisi setelah contoh kedua.
Update Streaming
Judul Bagian “Update Streaming”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);Pengaturan Monitoring
Judul Bagian “Pengaturan Monitoring”intervalMsberdasarkan pada1000milisecond. Nilai di bawah250milisecond ditekan ke250.emitImmediatelyberdasarkan padatrue.- Atur
durationMsatausampleCountuntuk menghentikan pemantauan secara otomatis. - Menghubungi
startMonitoring()sambil pemantauan aktif mengulangi sesi dengan opsi baru. - Setiap
deviceInfoUpdatetermasuk satu berbasissequence, tanggal stempel sesi,startedAt,elapsedMs.
,
,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);}Menggunakan sensor lapangan
Judul bagian “Menggunakan sensor lapangan”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);Sensor lapangan 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 | Mengembalikan | Catatan |
|---|---|---|
getInfo() | Promise<DeviceInfoSnapshot> | Membaca satu snapshot. |
startMonitoring(options?) | Promise<StartMonitoringResult> | Mengaktifkan snapshot berkala, atau memulai 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 didaftarkan pada plugin. |
getPluginVersion() | Promise<PluginVersionResult> | Membaca versi plugin native. |
PluginListenerHandle disediakan oleh Capacitor dan memiliki remove() untuk menghapus pengguna individu tersebut.
Tipe snapshot
Bab berjudul “Tipe 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 dalam byte, maxFrequencyHz adalah hertz, dan nilai suhu dalam Celcius. usagePercent bisa null hingga platform memiliki sampel yang cukup untuk menghitungnya.
Tipe sensor
Bab berjudul “Tipe 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 milisecond Unix epoch. Satuan umum adalah Celcius, persen, hPa, lux, dan sentimeter.
Tipe pemantauan
Tipe Monitoringinterface 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 monitoring.
Sumber Kebenaran
Tajuk “Sumber Kebenaran”Referensi ini mengikuti sumber publik API di plugin’s src/definitions.tsPerbarui halaman ini ketika sumber tersebut berubah.
Teruskan dari Getting Started
Tajuk “Teruskan dari Getting Started”Jika Anda menggunakan Getting Started untuk diagnostik perangkat, hubungkan dengan @capgo/capacitor-device-info untuk ringkasan, Menggunakan @capgo/capacitor-device-info untuk halaman tutorial, @capgo/capacitor-barometer untuk tekanan tekanan fokus, dan @capgo/capacitor-light-sensor untuk bacaan sensor cahaya fokus.