api
设备信息
查看 Markdown读取 Android 非持久设备、显示和运行时信息。
读取 Android 当前设备、显示和运行时信息,不采集持久设备标识。
device 只提供非持久设备信息,用于适配布局、语言和诊断。它不提供 Android ID、序列号、
IMEI、广告 ID 或其他可用于跨会话追踪的标识。
实现入口:
| 入口 | 责任 |
|---|---|
frontend/src/api/device.ts | KSM.device.getInfo 封装 |
android/app/src/main/java/dev/kasumi/app/KSMAndroidHostServices.kt | 从 Build、窗口度量和资源读取字段 |
android/app/src/main/java/dev/kasumi/app/bridge/KSMRouter.kt | 权限和返回结构校验 |
| 方法 | Windows | Android | 权限 |
|---|---|---|---|
KSM.device.getInfo / device.getInfo | 不支持 | 支持 | device.info |
Windows 不注册该命令,调用返回 NOT_SUPPORTED。
| 字段 | 类型 | 说明 |
|---|---|---|
platform | "android" | 固定平台值 |
osVersion | string | Android 版本字符串 |
model | string | Build.MODEL |
manufacturer | string | Build.MANUFACTURER |
appVersion | string | 宿主应用版本 |
language | string | 当前语言标签 |
screenWidth | number | 当前窗口度量的物理像素宽度 |
screenHeight | number | 当前窗口度量的物理像素高度 |
density | number | Android 显示密度 |
deviceName | string | 系统设备名,读取失败或为空时回退到 Build.MODEL |
timezone | string | 当前时区 ID |
architecture | string | Build.SUPPORTED_ABIS 的首选值 |
屏幕尺寸不是 CSS 像素。前端需要逻辑尺寸时,应使用浏览器布局信息或根据 density 转换。
import { KSM } from '@kasumi/bridge';
const capabilities = await KSM.capabilities();
if (capabilities.commands.includes('device.getInfo')) {
const info = await KSM.device.getInfo();
console.info(
`${info.manufacturer} ${info.model}`,
`${info.screenWidth}x${info.screenHeight}@${info.density}`,
info.timezone
);
}| 情况 | 错误 |
|---|---|
未授予 device.info | PERMISSION_DENIED |
| Windows 或未配置设备服务 | NOT_SUPPORTED |
| 读取字段失败 | 使用空字符串或 Build.MODEL 回退,不返回持久标识 |
该模块仅 Android 提供。screenWidth / screenHeight 来自当前窗口度量,旋转后可能变化;
deviceName 依赖系统 API,不同厂商可能返回空值或通用名称。
device.getInfo。device.info。Build.MODEL。
评论