plugins
Device
查看 MarkdownKasumi 设备信息插件的方法、字段边界与隐私约束。
理解 Device 插件的 Android 设备字段、显示单位、隐私边界和平台差异。
Device 插件只提供适配布局、语言和诊断所需的非持久设备信息。它不返回 Android ID、IMEI、 序列号、广告 ID、MAC 地址或其他可用于跨会话追踪的标识。
| 层级 | 入口 | 责任 |
|---|---|---|
| 前端 API | frontend/src/api/device.ts | KSM.device.getInfo 封装 |
| 协议清单 | protocol/plugins.json | device 插件和命令归属 |
| Android 实现 | KSMAndroidHostServices.kt | 从 Build、窗口度量和资源读取 |
| Windows | 不注册 | 调用返回 NOT_SUPPORTED |
| 命令 | Windows | Android | 权限 | 返回 |
|---|---|---|---|---|
device.getInfo | 不支持 | 支持 | device.info | KSMDeviceInfo |
| 字段 | 类型 | 说明 |
|---|---|---|
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 转换。
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
);
}该插件只在 Android 注册。旋转、分屏或多窗口变化后,screenWidth 和 screenHeight
可能变化。deviceName 依赖厂商系统实现,可能为空或返回通用名称。
| 错误码 | 场景 |
|---|---|
PERMISSION_DENIED | 未授予 device.info |
NOT_SUPPORTED | Windows 或宿主未注册 Device 插件 |
IO_ERROR | 系统信息服务读取失败 |
TIMEOUT / CANCELLED | 请求超时或窗口销毁 |
device.getInfo。device.info。Build.MODEL。
评论