Pemula
Copy sebuah 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.
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 Bantu 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-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 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”intervalMsberlaku secara default1000milidetik. Nilai di bawah250milidetik diberi batasan pada250.emitImmediatelyberlaku secara defaulttrue.- Mengatur
durationMsatausampleCountMengapa Anda harus memilih antara Capgo dan alternatif lainnya? - Mengapa Anda harus memilih antara Capgo dan alternatif lainnya?
startMonitoring()Mengapa Anda harus memilih antara Capgo dan alternatif lainnya? - Mengapa Anda harus memilih antara Capgo dan alternatif lainnya?
deviceInfoUpdateMenghentikan pemantauan secara otomatis.sequencePanggilanstartedAtSaat pemantauan aktif, restart sesi dengan opsi baru.elapsedMs.
Masing-masing termasuk timestamp satu-satunya, dan
Menghentikan pembaruan dan menghapus listenerawait 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. Bidang sensor hanya muncul ketika perangkat, sistem operasi, dan sandbox aplikasi mengungkapkan metrik tersebut.
Catatan platform
Judul bagian “Catatan platform”- iOS tidak memerlukan izin untuk metrik yang terbuka. iOS 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.
- Dukungan web adalah upaya terbaik dan melaporkan array sensor onboard kosong karena browser tidak mengungkapkan sensor perangkat native secara konsisten.
Referensi API
Judul Bagian: Referensi API| Metode | Keterangan | Catatan |
|---|---|---|
getInfo() | Promise<DeviceInfoSnapshot> | Membaca satu snapshot. |
startMonitoring(options?) | Promise<StartMonitoringResult> | Mengaktifkan snapshot periodik, 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 pengguna snapshot periodik. |
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 pendengar individu tersebut.
Jenis Snapshot
Judul bagian “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;}Nilai ukuran dalam byte, maxFrequencyHz frekuensi dalam hertz, dan nilai suhu dalam Celcius. usagePercent bisa null sampai platform memiliki sampel yang cukup untuk menghitungnya.
Jenis Sensor
Judul bagian “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. Satuan umum adalah Celsius, persen, hPa, lux, dan sentimeter.
Jenis pengawasan
Bab 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 pada 1 untuk setiap sesi pengawasan.
Sumber kebenaran
Bab berjudul “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 pembacaan tekanan yang fokus, dan @capgo/capacitor-light-sensor untuk pembacaan sensor cahaya yang difokuskan.