{"_id":"@capacitor-ohos/device","_rev":"2-c645f78a338e561b116458056a9f4e32","name":"@capacitor-ohos/device","dist-tags":{"latest":"8.0.2"},"versions":{"8.0.1":{"name":"@capacitor-ohos/device","version":"8.0.1","keywords":["capacitor","plugin","native"],"author":{"url":"Group","name":"Huawei Device Co., Ltd and iSoftStone Information Technology"},"license":"MIT","_id":"@capacitor-ohos/device@8.0.1","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-device/issues"},"dist":{"shasum":"1f474f556a3f58d83ea930ff6c56d5f2650a48cd","tarball":"https://registry.npmjs.org/@capacitor-ohos/device/-/device-8.0.1.tgz","fileCount":10,"integrity":"sha512-YghSWRpVcJwN3LybckqypD1W9aqZ0c8XaB/b55/x3SD3W1YVeAXbmHumgu7pmfYuh2sLmUSDmcv7LmqyFQmPPQ==","signatures":[{"sig":"MEQCICJcogRKF1naPmV1ltWpHdunRJQVMM725WfcYNF3R9SPAiB7SFgVQ701GXfUKXeeKjlzJ4ne6GotyEIo/6wLL6iPKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42042},"gitHead":"f7e1449e7578a58b83ffdb1f840dc4dabbef1fcd","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"capacitor":{"id":"@capacitor/device","platforms":["openharmony"]},"repository":{"url":"gitcode:CPF-Ionic/capacitor-device","type":"git"},"_npmVersion":"10.5.1","description":"The Device API exposes internal information about the device, such as the model and operating system version, along with user information such as unique ids.","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/device_8.0.1_1777539645697_0.4174006018912422","host":"s3://npm-registry-packages-npm-production"}},"8.0.2":{"name":"@capacitor-ohos/device","version":"8.0.2","description":"The Device API exposes internal information about the device, such as the model and operating system version, along with user information such as unique ids.","capacitor":{"id":"@capacitor/device","platforms":["openharmony"]},"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-device"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-device/issues"},"keywords":["capacitor","plugin","native"],"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","_id":"@capacitor-ohos/device@8.0.2","gitHead":"fdf66543395b0a1d1de22807c378c53662a4cd32","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-vrd/ny78gjVAPs0t8LGGv3mHN6YENXk+Ox+xkKn4iou5xGxxGvXmBxmarHI9cpiQtxMMGfr13l0An79ghvk6gQ==","shasum":"233f02ea9c70be1bf36cb485af88ad0b38f28ff4","tarball":"https://registry.npmjs.org/@capacitor-ohos/device/-/device-8.0.2.tgz","fileCount":10,"unpackedSize":42066,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCJ8I2JWcccBYJMu4wKcgNEGyj4hgm9/tHmKOhOQDdbywIgJuS1oric7MrRGQySlsK4axzA0EDCVrjFhTZM2hG7MEw="}]},"_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"directories":{},"maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/device_8.0.2_1784789861419_0.5004558461120179"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-30T09:00:45.475Z","modified":"2026-07-23T06:57:41.693Z","8.0.1":"2026-04-30T09:00:45.857Z","8.0.2":"2026-07-23T06:57:41.554Z"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-device/issues"},"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","keywords":["capacitor","plugin","native"],"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-device"},"description":"The Device API exposes internal information about the device, such as the model and operating system version, along with user information such as unique ids.","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"readme":"# <center>@capacitor/device</center>\r\n[![zh-CN](https://img.shields.io/badge/lang-中文-blue.svg)](README.md)\r\n[![en](https://img.shields.io/badge/lang-English-blue.svg)](README.en.md)\r\n\r\n本项目基于 [@capacitor/device@8.0.0](https://www.npmjs.com/package/@capacitor/device/v/8.0.0) 开发。\r\n\r\n## 简介\r\n\r\n@capacitor/device是capacitor生态系统中的核心插件，用于获取当前运行应用的设备硬件信息与软件环境数据，为跨平台应用开发提供设备差异化适配能力，兼容capacitor的Android、iOS\r\n等主流移动平台及浏览器环境中使用，本文档说明在OpenHarmony系统中的使用。\r\n\r\n设备API会公开设备的内部信息，例如型号和操作系统版本，以及用户相关信息（如唯一标识符）。\r\n\r\n## 支持平台\r\n\r\n- **OpenHarmony**：5.0+\r\n\r\n## 下载安装\r\n\r\n通过命令行或手动引入即可快速安装插件，支持从npm仓库获取。\r\n\r\n### 命令行安装（推荐）\r\n\r\n安装hionic CLI：\r\n\r\n```bash\r\nnpm install -g hionic\r\n```\r\n\r\n以下两种方式中**任选其一**即可，无需重复操作：\r\n\r\nnpm安装：\r\n\r\n```bash\r\n# 安装插件\r\nnpm install @capacitor/device\r\n\r\n# 同步插件\r\nhionic sync openharmony\r\n```\r\n\r\nhionic CLI安装：\r\n\r\n```bash\r\nhionic plugin add @capacitor/device\r\n```\r\n\r\n### 手动引入安装\r\n\r\n根据插件源码中 `plugin.xml` 配置在项目中引入插件：\r\n\r\n#### 1. 添加插件配置\r\n\r\n根据 `plugin.xml` 的 `config-json` 项，通过 `target` 字段找到 `entry` 模块中 `capacitor.plugins.json` 文件，并根据 `param`\r\n标签添加配置如下：\r\n\r\n```json\r\n{\r\n  \"pkg\": \"@capacitor/device\",\r\n  \"classpath\": \"Device\"\r\n}\r\n```\r\n\r\n#### 2. 修改 CMake 配置\r\n\r\n根据 `plugin.xml` 的 `CMakeLists` 项，通过 `modules-name` 字段找到模块 `capacitor`，路径为 `target` 字段的\r\n`CMakeLists.txt` 文件，并根据 `param` 标签添加 `add_subdirectory` 和 `target_link_libraries` 如下：\r\n\r\n```cmake\r\n#START_ADD_SUBDIRECTORY\r\n// ...\r\nadd_subdirectory(Device)\r\n// ...\r\n#END_ADD_SUBDIRECTORY\r\n\r\n// ...\r\n\r\ntarget_link_libraries(capacitor PUBLIC\r\n  \"-Wl,--whole-archive\"\r\n  // ...\r\n  Device\r\n  // ...\r\n  \"-Wl,--no-whole-archive\"\r\n)\r\n```\r\n\r\n#### 3. 复制源码文件\r\n\r\n根据 `plugin.xml` 的 `source-file` 项，根据 `src` 字段找到需要复制的文件，并根据 `modules-name` 字段和 `target-dir`\r\n字段找到文件复制的具体模块和目录：\r\n\r\n将源码中src/main/cpp/Device目录下的Device.h、Device.cpp、CMakeLists.txt文件引入到capacitor模块中src/main/cpp/Device目录下。\r\n\r\n将源码中src/main/ets/components/Device目录下的Device.ets文件引入到capacitor模块中src/main/ets/components/Device目录下。\r\n\r\n#### 4. 添加 ArkTS 配置\r\n\r\n在`capacitor`模块的`build-profile.json5`文件中，`buildOption/arkOptions/runtimeOnly/sources`配置项数组中加入步骤 3 中拷贝的\r\nets 文件路径：\r\n\r\n```json\r\n{\r\n  \"buildOption\": {\r\n    \"arkOptions\": {\r\n      \"runtimeOnly\": {\r\n        \"sources\": [\r\n          \"./src/main/ets/components/Device/Device.ets\"\r\n        ]\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n## 卸载\r\n\r\n```bash\r\n# 卸载 device 插件\r\nhionic plugin remove @capacitor/device\r\n```\r\n\r\n## 约束与限制\r\n\r\n### 兼容性\r\n\r\n在以下版本中已测试通过：\r\n\r\n1. capacitor: 8.0.0-ohos-8.0.0;SDK: 5.0.5(17); IDE: DevEco Studio: 6.0.0; ROM: 5.1.0.150;\r\n\r\n### 权限要求\r\n\r\n无需额外申请权限。\r\n\r\n## 使用示例\r\n\r\n### 示例1：基础示例\r\n\r\n获取设备、电池、语言代码、语言标签信息并打印。\r\n\r\n```\r\nimport { Device } from '@capacitor/device';\r\n\r\nconst getId = async () => {\r\n  const info = await Device.getId();\r\n  console.log(info);\r\n};\r\n\r\nconst getInfo = async () => {\r\n  const info = await Device.getInfo();\r\n  console.log(info);\r\n};\r\n\r\nconst getBatteryInfo = async () => {\r\n  const info = await Device.getBatteryInfo();\r\n  console.log(info);\r\n};\r\n\r\nconst getLanguageCode = async () => {\r\n  const info = await Device.getLanguageCode();\r\n  console.log(info);\r\n};\r\n\r\nconst getLanguageTag = async () => {\r\n  const info = await Device.getLanguageTag();\r\n  console.log(info);\r\n};\r\n```\r\n\r\n## 使用说明\r\n\r\n引入@capacitor/device插件的device模块使用，所有API均基于Promise实现，支持异步调用。\r\n\r\n### 1. 获取设备唯一标识符（getId）\r\n\r\n用于获取设备唯一标识，OpenHarmony平台返回ODID。\r\n\r\n#### 方法签名\r\n\r\n```\r\ngetId(): Promise<DeviceId>\r\n```\r\n\r\n#### 返回值说明\r\n\r\n##### DeviceId\r\n\r\n| 属性名        | 类型     | 说明      |\r\n|------------|--------|---------|\r\n| identifier | string | 设备唯一标识符 |\r\n\r\n### 2. 获取设备基本信息（getInfo）\r\n\r\n用于获取设备的基础软硬件信息，包括设备名称、型号、系统版本、制造商等数据。\r\n\r\n#### 方法签名\r\n\r\n```\r\ngetInfo(): Promise<DeviceInfo>\r\n```\r\n\r\n#### 返回值说明\r\n\r\n##### DeviceInfo\r\n\r\n| 属性名               | 类型      | 说明                                  |\r\n|-------------------|---------|-------------------------------------|\r\n| name              | string  | 设备名称                                |\r\n| model             | string  | 设备型号                                |\r\n| platform          | string  | 设备平台                                |\r\n| operatingSystem   | string  | 设备的操作系统                             |\r\n| osVersion         | string  | 操作系统版本                              |\r\n| iOSVersion        | number  | 仅跨平台兼容，OpenHarmony平台不涉及             |\r\n| androidSDKVersion | number  | 仅跨平台兼容，OpenHarmony平台不涉及             |\r\n| manufacturer      | string  | 设备制造商                               |\r\n| isVirtual         | boolean | 标识设备是否为模拟器/虚拟设备，模拟器返回true，真机返回false |\r\n| memUsed           | number  | 当前应用使用的内存大小，单位为字节                   |\r\n| webViewVersion    | string  | webView浏览器版本，API20及以上版本支持获取         |\r\n\r\n### 3. 获取电池信息（getBatteryInfo）\r\n\r\n用于获取设备当前的电池电量和充电状态。\r\n\r\n#### 方法签名\r\n\r\n```\r\ngetBatteryInfo(): Promise<BatteryInfo>\r\n```\r\n\r\n#### 返回值说明\r\n\r\n##### BatteryInfo\r\n\r\n| 属性名          | 类型      | 说明                     |\r\n|--------------|---------|------------------------|\r\n| batteryLevel | number  | 电池电量百分比，取值范围0到1之间，可选返回 |\r\n| isCharging   | boolean | 电池是否正在充电               |\r\n\r\n### 4. 获取设备语言代码（getLanguageCode）\r\n\r\n用于获取设备当前的语言代码，例如zh、en等。\r\n\r\n#### 方法签名\r\n\r\n```\r\ngetLanguageCode(): Promise<GetLanguageCodeResult>\r\n```\r\n\r\n#### 返回值说明\r\n\r\n##### GetLanguageCodeResult\r\n\r\n| 属性名   | 类型     | 说明     |\r\n|-------|--------|--------|\r\n| value | string | 设备语言代码 |\r\n\r\n### 5. 获取设备语言标签（getLanguageTag）\r\n\r\n用于获取设备当前的语言标签，例如zh-Hans、zh-Hans-CN等。\r\n\r\n#### 方法签名\r\n\r\n```\r\ngetLanguageTag(): Promise<LanguageTag>\r\n```\r\n\r\n#### 返回值说明\r\n\r\n##### LanguageTag\r\n\r\n| 属性名   | 类型     | 说明     |\r\n|-------|--------|--------|\r\n| value | string | 设备语言标签 |\r\n\r\n## 目录结构\r\n\r\n```plaintext\r\n|---- 目录\r\n|     |---- src/main  # 插件的实现代码\r\n|           |----cpp  # C++ 代码\r\n|           |----ets   # ArkTS 代码\r\n|     |---- README.md          # 说明文档\r\n|     |---- package.json       # 配置文件\r\n|     |---- plugin.xml       # 插件配置文件\r\n```\r\n\r\n## 贡献代码\r\n\r\n使用过程中发现任何问题都可以提 [Issue](https://gitcode.com/CPF-Ionic/capacitor-device/issues)\r\n，当然，也非常欢迎发 [PR](https://gitcode.com/CPF-Ionic/capacitor-device/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **MIT License** 开源，详见 [LICENSE](./LICENSE) 文件。","readmeFilename":"README.md"}