Pemula
Panduan setup 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.
Kemampuan Kompatibilitas
Bagian berjudul “Kemampuan Kompatibilitas”@capgo/capacitor-device-info memerlukan Capacitor 8 atau lebih baru (@capacitor/core >=8.0.0).
Pasang
Bagian berjudul “Pasang”Anda dapat menggunakan Pengaturan Bantuan AI 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-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 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 asli pertama dapat mengabaikannya; panggil getInfo() lagi nanti atau gunakan pengawasan untuk menerima penggunaan CPU yang diisi setelah sampel kedua.
Stream updates
Bab berjudul “Stream updates”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);Perilaku pengawasan
Bab berjudul “Perilaku pengawasan”intervalMsberdasarkan1000milidetik. Nilai di bawah250milidetik diberi tanda batas pada250.emitImmediatelyberdasarkantrue.- Mengatur
durationMsatausampleCountMengapa 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?
deviceInfoUpdateMengapa Anda harus memilih antara beberapa pilihan?sequenceMenghentikan pemantauan secara otomatis.startedAtPanggilanelapsedMs.
Saat pemantauan aktif, restart sesi dengan opsi baru.
Masing-masingawait DeviceInfo.stopMonitoring();await handle.remove();
// Or remove every listener registered on this plugin:await DeviceInfo.removeAllListeners();Periksa status pemantauan
Judul bagian “Periksa status pemantauan”const state = await DeviceInfo.isMonitoring();
if (state.monitoring) { console.log(state.samplesEmitted);}Daftarkan bidang sensor
Judul bagian “Daftarkan 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 bersifat 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 upaya.
- Support web adalah upaya terbaik dan melaporkan array sensor onboard kosong karena browser tidak mengungkapkan sensor perangkat asli secara konsisten.
Referensi API
Judul Bagian “Referensi API”| Metode | Kembali | Catatan |
|---|---|---|
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.
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-ukuran dalam byte, maxFrequencyHz frekuensi dalam hertz, dan nilai suhu dalam Celsius. usagePercent bisa null sampai platform memiliki cukup sampel untuk menghitungnya.
Jenis Sensor
Bab 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 adalah milisecond Unix epoch. Unit umum adalah Celsius, persen, hPa, lux, dan sentimeter.
Jenis pengawasan
Judul bagian “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 pada 1 untuk setiap sesi pengawasan.
Sumber kebenaran
Judul bagian “Sumber kebenaran”Referensi ini mengikuti sumber publik API dalam plugin’s src/definitions.ts. Perbarui halaman ini ketika sumber tersebut berubah.
Teruskan dari Getting Started
Judul bagian “Teruskan 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 bacaan tekanan yang fokus, dan @capgo/capacitor-light-sensor untuk membaca data sensor cahaya terfokus.