Pembuatan Awal
Panduan pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini yang dapat dicopy.
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
Bab berjudul “Kemampuan Kompatibilitas”@capgo/capacitor-device-info memerlukan Capacitor 8 atau lebih baru (@capacitor/core >=8.0.0).
Pasang
Bab berjudul “Pasang”Anda dapat menggunakan Pengaturan Bantu 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-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
Bagian berjudul “Import”import { DeviceInfo } from '@capgo/capacitor-device-info';Bagian berjudul “Baca satu snapshot”
Paketconst 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 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
, waktu sesiawait 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);}Registrasi bidang sensor
Judul bagian “Registrasi 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 menampilkan 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 menampilkan sensor perangkat asli secara konsisten.
Referensi API
Judul Bagian: Referensi API| Methode | Kembali | 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 didaftarkan 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 adalah byte, maxFrequencyHz frekuensi adalah hertz, dan nilai suhu dalam Celsius. 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 bacaan tekanan yang fokus, dan @capgo/capacitor-light-sensor untuk membaca hasil sensor cahaya terfokus.