@tojestproste/caplab-screen-info
v1.0.1
Published
Capacitor plugin - odczyt stanu ekranu na Androidzie (rozdzielczość, gęstość, jasność, refresh rate, cutout, paski systemowe) bez uprawnień.
Downloads
274
Maintainers
Readme
@tojestproste/caplab-screen-info
Capacitor plugin (Android) zwracający pełny stan ekranu: rozdzielczość (realną i app-usable), gęstość, jasność, orientację, refresh rate, cutout/notch, wysokość pasków systemowych i font scale.
Część zestawu CapLab — narzędzi diagnostycznych dla Androida.
Instalacja
npm install @tojestproste/caplab-screen-info
npx cap syncUprawnienia
Brak. Wszystkie dane są odczytywalne przez standardowe API Androida (WindowManager, DisplayMetrics, Resources) bez żadnej deklaracji w AndroidManifest.xml.
Użycie
import { ScreenInfo } from '@tojestproste/caplab-screen-info';
const data = await ScreenInfo.get();
console.log(data.appUsableResolution); // { widthPx: 1220, heightPx: 2429 }
console.log(data.refreshRate.currentHz); // 120
console.log(data.systemBars.systemBarsTotalHeightPx); // 283API
get()
get() => Promise<ScreenInfoResult>Zwraca pełny stan ekranu.
Returns: Promise<ScreenInfoResult>
Interfaces
ScreenInfoResult
| Prop | Type |
| ---------------------- | ---------------------------------------------------------------------------- |
| timestamp | number |
| appUsableResolution | ScreenInfoResolution |
| realResolution | ScreenInfoResolution |
| density | ScreenInfoDensity |
| orientation | 'portrait' \| 'landscape' |
| fontScale | ScreenInfoFontScale |
| brightness | ScreenInfoBrightness |
| refreshRate | ScreenInfoRefreshRate |
| cutout | ScreenInfoCutout |
| systemBars | ScreenInfoSystemBars |
Przykładowy response
Realny output (Poco X7 Pro, Android 16, 120Hz, font scale 125%):
{
"appUsableResolution": { "widthPx": 1220, "heightPx": 2429 },
"realResolution": { "widthPx": 1220, "heightPx": 2712 },
"density": { "densityBucket": "xxxhdpi", "densityDpi": 520 },
"fontScale": { "scale": 1.25, "percent": 125, "isDefault": false, "isLarge": true },
"refreshRate": { "currentHz": 120, "supportedHz": [30, 60, 90, 120] },
"cutout": { "present": true, "safeInsetTop": 130 },
"systemBars": {
"systemBarsTotalHeightPx": 283,
"likelyGestureNavigation": false
}
}Uwaga o likelyGestureNavigation: to heurystyka (próg ~24dp), nie pewnik. Na niektórych nakładkach producentów (np. HyperOS) może się różnie zachowywać.
Licencja
MIT
