npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@react-native-ohos/react-native-device-info

v14.1.2-beta.3

Published

Get device information using react-native

Readme

模板版本:v0.4.0

本项目基于 react-native-device-info 开发。

该第三方库的仓库已迁移至 Gitcode,且支持直接从 npm 下载,新的包名为:@react-native-ohos/react-native-device-info 版本所属关系如下: | 三方库名称 | 三方库版本 | 发布信息 | 支持RN版本 | Autolink | 编译API版本 | 社区基线版本 | npm地址 | | ------------ | ------------ | ------------------------------ | ------------- | ------------- |------------------------ | ------------- | ------------- | | @react-native-ohos/react-native-device-info | ~ 14.1.2 | Gitcode Releases | 0.82.* | 是 | API12+ | 14.1.1 | Npm Address | | @react-native-ohos/react-native-device-info | ~ 14.0.5 | Gitcode Releases | 0.77.* | 否 | API12+ | 14.0.4 | Npm Address | | @react-native-ohos/react-native-device-info | ~ 11.1.1 | Gitcode Releases | 0.72.* | 是 | API12+ | 11.1.0 | Npm Address | | @react-native-oh-tpl/react-native-device-info | <= 11.1.0-0.0.8@deprecated | Github Releases | 0.72.* | 否 | API12+ | 11.1.0 | Npm Address |

1. 安装与使用

进入到工程目录并输入以下命令:

npm

npm install @react-native-ohos/react-native-device-info

yarn

yarn add @react-native-ohos/react-native-device-info

下面的代码展示了这个库的基本使用场景:

[!WARNING] 使用时 import 的库名不变。


import {
  SafeAreaView,
  ScrollView,
  StatusBar,
  StyleSheet,
  Text,
  useColorScheme,
  View,
} from 'react-native';
import React, { useState, useEffect } from 'react';
import DeviceInfo from 'react-native-device-info';
import { Colors } from 'react-native/Libraries/NewAppScreen';

function App() {
  const isDarkMode = useColorScheme() === 'dark';
  const [deviceInfo, setDeviceInfo] = useState({
    BundleId: '',
    Version: '',
    ReadableVersion: '',
    BuildNumber: '',
    Tablet: false,
    ApplicationName: '',
    Brand: '',
    Model: '',
    DeviceType: '',
    DeviceName: '',
  });

  useEffect(() => {
    const fetchDeviceInfo = async () => {
      const BundleId = await DeviceInfo.getBundleId();
      const Version = await DeviceInfo.getVersion();
      const ReadableVersion = await DeviceInfo.getReadableVersion();
      const BuildNumber = await DeviceInfo.getBuildNumber();
      const Tablet = await DeviceInfo.isTablet();
      const ApplicationName = await DeviceInfo.getApplicationName();
      const Brand = await DeviceInfo.getBrand();
      const Model = await DeviceInfo.getModel();
      const DeviceType = await DeviceInfo.getDeviceType();
      const DeviceName = await DeviceInfo.getDeviceName();

      setDeviceInfo({
        BundleId,
        Version,
        ReadableVersion,
        BuildNumber,
        Tablet,
        ApplicationName,
        Brand,
        Model,
        DeviceType,
        DeviceName,
      });
    };

    fetchDeviceInfo();
  }, []);

  const backgroundStyle = {
    backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
  };

  return (
    <SafeAreaView style={backgroundStyle}>
      <StatusBar
        barStyle={isDarkMode ? 'light-content' : 'dark-content'}
        backgroundColor={backgroundStyle.backgroundColor}
      />
      <ScrollView
        contentInsetAdjustmentBehavior="automatic"
        style={backgroundStyle}>
        <View
          style={{
            backgroundColor: isDarkMode ? Colors.black : Colors.white,
            padding: 16,
          }}>
          <Text style={styles.sectionTitle}>Device Information</Text>
          <Text style={styles.infoText}>BundleId: {deviceInfo.BundleId}</Text>
          <Text style={styles.infoText}>Version: {deviceInfo.Version}</Text>
          <Text style={styles.infoText}>ReadableVersion: {deviceInfo.ReadableVersion}</Text>
          <Text style={styles.infoText}>BuildNumber: {deviceInfo.BuildNumber}</Text>
          <Text style={styles.infoText}>Tablet: {deviceInfo.Tablet ? 'Yes' : 'No'}</Text>
          <Text style={styles.infoText}>ApplicationName: {deviceInfo.ApplicationName}</Text>
          <Text style={styles.infoText}>Brand: {deviceInfo.Brand}</Text>
          <Text style={styles.infoText}>Model: {deviceInfo.Model}</Text>
          <Text style={styles.infoText}>DeviceType: {deviceInfo.DeviceType}</Text>
          <Text style={styles.infoText}>DeviceName: {deviceInfo.DeviceName}</Text>
        </View>
      </ScrollView>
    </SafeAreaView>
  );
}

const styles = StyleSheet.create({
  sectionTitle: {
    fontSize: 24,
    fontWeight: 'bold',
    marginBottom: 16,
  },
  infoText: {
    fontSize: 16,
    marginBottom: 8,
  },
});

export default App;

[!注意事项] 如果调用 getFontScale接口,需要进行以下配置。

1. harmony/AppScope/resources/base/profile文件夹下面新增configuration.json文件,内容如下:

{
  "configuration": {
    "fontSizeScale": "followSystem",
    "fontSizeMaxScale": "3.2"
  }
}

2.在harmony/AppScope/app.json5 文件中配置 "configuration": "$profile:configuration" 如下:
{
  "app": {
    "bundleName": "com.example.test",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.0",
    "icon": "$media:app_icon",
    "label": "$string:app_name",
    "distributedNotificationEnabled": true,
  + "configuration": "$profile:configuration"
  }
}

2. Link

| | 是否支持autolink | RN框架版本 | |----------------------------|--------------|--------| | ~14.1.2 | Yes | 0.82 | | ~14.0.5 | No | 0.77 | | ~11.1.1 | Yes | 0.72 | | <= 11.1.0-0.0.8@deprecated | No | 0.72 |

使用AutoLink的工程需要根据该文档配置,Autolink框架指导文档:https://gitcode.com/openharmony-sig/ohos_react_native/blob/master/docs/zh-cn/Autolinking.md

如您使用的版本支持 Autolink,并且工程已接入 Autolink,可跳过ManualLink配置。

首先需要使用 DevEco Studio 打开项目里的 HarmonyOS 工程 harmony

2.1. Overrides RN SDK

为了让工程依赖同一个版本的 RN SDK,需要在工程根目录的 oh-package.json5 添加 overrides 字段,指向工程需要使用的 RN SDK 版本。替换的版本既可以是一个具体的版本号,也可以是一个模糊版本,还可以是本地存在的 HAR 包或源码目录。

关于该字段的作用请阅读官方说明

{
  "overrides": {
    "@rnoh/react-native-openharmony": "file:../react_native_openharmony"
  }
}

2.2. 引入原生端代码

目前有两种方法:

  • 通过 har 包引入;
  • 直接链接源码。

方法一:通过 har 包引入(推荐)

[!TIP] har 包位于三方库安装路径的 harmony 文件夹下。

打开 entry/oh-package.json5,添加以下依赖

"dependencies": {
    "@rnoh/react-native-openharmony": "file:../react_native_openharmony",
    "@react-native-ohos/react-native-device-info": "file:../../node_modules/@react-native-ohos/react-native-device-info/harmony/device_info.har"
}

点击右上角的 sync 按钮

或者在命令行终端执行:

cd entry
ohpm install

方法二:直接链接源码

[!TIP] 如需使用直接链接源码,请参考直接链接源码说明

2.3. 配置 CMakeLists 和引入 RNDeviceInfoPackage

若使用的是 <= 11.1.0-0.0.8 版本,请跳过本章。

打开 entry/src/main/cpp/CMakeLists.txt,添加:

+ set(REACT_NATIVE_DEVICE_INFO_CPP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../oh_modules/@react-native-ohos/react-native-device-info/src/main/cpp")

# RNOH_BEGIN: manual_package_linking_1
+ add_subdirectory("${REACT_NATIVE_DEVICE_INFO_CPP_DIR}" ./device_info)
# RNOH_END: manual_package_linking_1

# RNOH_BEGIN: manual_package_linking_2
+ target_link_libraries(rnoh_app PUBLIC device_info)
# RNOH_END: manual_package_linking_2

打开 entry/src/main/cpp/PackageProvider.cpp,添加:

#include "RNOH/PackageProvider.h"
#include "generated/RNOHGeneratedPackage.h"
+ #include "RNDeviceInfoPackage.h"

using namespace rnoh;

std::vector<std::shared_ptr<Package>> PackageProvider::getPackages(Package::Context ctx) {
    return {
        std::make_shared<RNOHGeneratedPackage>(ctx),
+       std::make_shared<RNDeviceInfoPackage>(ctx),
    };
}

2.4. 在 ArkTs 侧引入 RNDeviceInfoPackage

打开 entry/src/main/ets/RNPackagesFactory.ts,添加:

  ...
+ import {RNDeviceInfoPackage} from '@react-native-ohos/react-native-device-info/ts';

export function createRNPackages(ctx: RNPackageContext): RNPackage[] {
  return [
+   new RNDeviceInfoPackage(ctx)
  ];
}

2.5. 运行

点击右上角的 sync 按钮

或者在命令行终端执行:

cd entry
ohpm install

然后编译、运行即可。

3. 约束与限制

3.1. 兼容性

本文档内容基于以下版本验证通过:

  1. RNOH: 0.72.96; SDK: HarmonyOS 6.0.0 Release SDK; IDE: DevEco Studio 6.0.0.858; ROM: 6.0.0.112;
  2. RNOH: 0.72.33; SDK: HarmonyOS NEXT B1; IDE: DevEco Studio: 5.0.3.900; ROM: Next.0.0.71;
  3. RNOH: 0.77.18; SDK: HarmonyOS 6.0.0 Release SDK; IDE: DevEco Studio 6.0.0.858; ROM: 6.0.0.112;

3.2. 权限要求

打开 entry/src/main/module.json5,添加:

...
"requestPermissions": [
  {
    "name": "ohos.permission.GET_NETWORK_INFO"
  },
  {
    "name": "ohos.permission.GET_WIFI_INFO"
  },
  {
    "name": "ohos.permission.DISTRIBUTED_DATASYNC",
    "reason": "$string:DATA_SYNC",
    "usedScene": {
      "abilities": [
        "EntryAbility"
      ],
      "when": "always"
    }
  }
]

3.3. 编译运行API要求

[!TIP] 当前三方库所有版本均已实现版本隔离,支持在 API12+ 工程编译,及 API12+ ROM运行。

4. API

[!TIP] "Platform"列表示该属性在原三方库上支持的平台。

[!TIP] "HarmonyOS Support"列为 yes 表示 HarmonyOS 平台支持该属性;no 则表示不支持;partially 表示部分支持。使用方法跨平台一致,效果对标 iOS 或 Android 的效果。

| Name | Description | Type | Required | Platform | HarmonyOS Support | |--------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|-------------------| -------- | ------- |-------------------------------------------------| | getAndroidId | 获取 ANDROID_ID。请参阅 API 文档了解正确使用方法。 | Promise | No | Android | no | | getAndroidIdSync | 获取 ANDROID_ID。请参阅 API 文档了解正确使用方法。 | string | No | Android | no | | getApiLevel | 获取 API 级别。 | Promise | No | Android | yes | | getApiLevelSync | 获取 API 级别。 | number | No | Android | yes | | getApplicationName | 获取应用程序名称。 | string | No | IOS/Android/Windows/visionOS | yes | | getAvailableLocationProviders | 返回特定平台位置提供者/服务的对象,包含当前是否可用的布尔值。 | Promise | No | IOS/Android/visionOS | yes | | getAvailableLocationProvidersSync | 返回特定平台位置提供者/服务的对象,包含当前是否可用的布尔值。 | object | No | IOS/Android/visionOS | yes | | getBaseOs | 产品所基于的基础操作系统构建版本。 | Promise | No | Android/Windows/Web | yes | | getBaseOsSync | 产品所基于的基础操作系统构建版本。 | string | No | Android/Windows/Web | yes | | getBuildId | 获取操作系统的构建编号。 | Promise | No | IOS/Android/Windows/visionOS | yes | | getBuildIdSync | 获取操作系统的构建编号。 | string | No | IOS/Android/Windows/visionOS | yes | | getBatteryLevel | 获取设备电池电量,返回 0 到 1 之间的浮点数。 | Promise | No | IOS/Android /Windows/Web/visionOS | yes | | getBatteryLevelSync | 获取设备电池电量,返回 0 到 1 之间的浮点数。 | number | No | IOS/Android /Windows/Web/visionOS | yes | | getBootloader | 系统引导程序版本号。 | Promise | No | Android | yes | | getBootloaderSync | 系统引导程序版本号。 | string | No | Android | yes | | getBrand | 获取设备品牌。 | string | No | IOS/Android/Windows/visionOS | yes | | getBuildNumber | 获取应用程序构建编号。 | string | No | IOS/Android/Windows/visionOS | yes | | getBundleId | 获取应用程序包标识符。 | string | No | IOS/Android/Windows/visionOS | yes | | isCameraPresent | 判断设备当前是否有摄像头。 | Promise | No | Android/Windows/Web | yes | | isCameraPresentSync | 判断设备当前是否有摄像头。 | boolean | No | Android/Windows/Web | yes | | getCarrier | 获取运营商名称(网络运营商)。 | Promise | No | IOS/Android | yes | | getCarrierSync | 获取运营商名称(网络运营商)。 | string | No | IOS/Android | no | | getCodename | 当前开发代号,如果是发布版本则为字符串"REL"。 | Promise | No | Android | yes | | getCodenameSync | 当前开发代号,如果是发布版本则为字符串"REL"。 | string | No | Android | yes | | getDevice | 工业设计名称。 | Promise | No | Android | yes | | getDeviceSync | 工业设计名称。 | string | No | Android | yes | | getDeviceId | 获取设备 ID。 | string | No | IOS/Android/Windows/visionOS | no | | getDeviceType | 返回设备类型的字符串。 | string | No | IOS/Android/visionOS | yes | | getDeviceTypeSync | 返回设备类型的字符串。 | string | No | IOS/Android/visionOS | yes | | getDisplay | 用于向用户显示的构建 ID 字符串。 | Promise | No | Android | yes | | getDisplaySync | 用于向用户显示的构建 ID 字符串。 | string | No | Android | yes | | getDeviceName | 获取设备名称。 | Promise | No | IOS/Android/Windows/visionOS | yes | | getDeviceNameSync | 获取设备名称。 | string | No | IOS/Android/Windows/visionOS | no | | getDeviceToken | 获取设备令牌(参见 DeviceCheck)。仅适用于 iOS 11.0+ 的真实设备。当不支持 getDeviceToken 时会拒绝 Promise,请注意异常处理。 | Promise | No | IOS/visionOS | no | | getFirstInstallTime | 获取应用首次安装的时间(毫秒)。 | Promise | No | IOS/Android/Windows/visionOS | yes | | getFirstInstallTimeSync | 获取应用首次安装的时间(毫秒)。 | number | No | IOS/Android/Windows/visionOS | yes | | getFingerprint | 唯一标识此构建的字符串。 | Promise | No | Android | yes | | getFingerprintSync | 唯一标识此构建的字符串。 | string | No | Android | yes | | getFontScale | 获取设备字体缩放比例。字体缩放比例是当前系统字体与"正常"字体大小的比率。如果正常文本为 10pt 而系统字体当前为 15pt,则字体缩放比例为 1.5。这可用于确定设备的无障碍设置是否已更改;如果字体缩放比例明显较大(> 2.0),您可能需要重新布局某些视图。 | Promise | No | IOS/Android/Windows | yes | | getFontScaleSync | 获取设备字体缩放比例。字体缩放比例是当前系统字体与"正常"字体大小的比率。如果正常文本为 10pt 而系统字体当前为 15pt,则字体缩放比例为 1.5。这可用于确定设备的无障碍设置是否已更改;如果字体缩放比例明显较大(> 2.0),您可能需要重新布局某些视图。 | number | No | IOS/Android/Windows | yes | | getFreeDiskStorage | 获取可用存储空间大小的方法(字节),考虑根文件系统和数据文件系统的计算。 | Promise | No | IOS/Android/Windows/Web/visionOS | no | | getFreeDiskStorageSync | 获取可用存储空间大小的方法(字节),考虑根文件系统和数据文件系统的计算。 | number | No | IOS/Android/Windows/Web/visionOS | no | | getFreeDiskStorageOld | 获取可用存储空间大小的旧实现方法(字节)。 | Promise | No | IOS/Android/Windows/Web/visionOS | no | | getHardware | 硬件名称(来自内核命令行或 /proc)。 | Promise | No | Android | yes | | getHardwareSync | 硬件名称(来自内核命令行或 /proc)。 | string | No | Android | yes | | getHost | 主机名。 | Promise | No | Android/Windows | yes | | getHostSync | 主机名。 | string | No | Android/Windows | yes | | getHostNames | 主机名列表。 | Promise<string[]> | No | Windows | no | | getIpAddress | 已弃用。获取设备当前 IP 地址(仅 WiFi)。请切换到 react-native-netinfo/netinfo 或 react-native-network-info。 | Promise | No | IOS/Android/Windows/visionOS | yes | | getIpAddressSync | 已弃用。获取设备当前 IP 地址(仅 WiFi)。请切换到 react-native-netinfo/netinfo 或 react-native-network-info。 | string | No | IOS/Android/Windows/visionOS | yes | | getIncremental | 系统每次构建的唯一识别码。 | Promise | No | Android | yes | | getIncrementalSync | 系统每次构建的唯一识别码。 | string | No | Android | yes | | getInstallerPackageName | 获取当前应用是由哪个“安装器”应用安装的。 | Promise | No | IOS/Android/Windows/visionOS | yes | | getInstallerPackageNameSync | 获取当前应用是由哪个“安装器”应用安装的。 | string | No | IOS/Android/Windows/visionOS | yes | | getInstallReferrer | 获取应用安装时的来源引用字符串。 | Promise | No | Android/Windows/Web | no | | getInstallReferrerSync | 获取应用安装时的来源引用字符串。 | string | No | Android/Windows/Web | no | | getInstanceId | 获取应用程序实例 ID。 | Promise | No | Android | yes | | getInstanceIdSync | 获取应用程序实例 ID。 | string | No | Android | yes | | getLastUpdateTime | 获取应用最后更新时间(毫秒)。 | Promise | No | Android | yes | | getLastUpdateTimeSync | 获取应用最后更新时间(毫秒)。 | number | No | Android | yes | | getMacAddress | 获取网络适配器 MAC 地址。 | Promise | No | IOS/Android/visionOS | yes | | getMacAddressSync | 获取网络适配器 MAC 地址。 | string | No | IOS/Android/visionOS | no | | getManufacturer | 获取设备制造商。 | Promise | No | IOS/Android/visionOS | yes | | getManufacturerSync | 获取设备制造商。 | string | No | IOS/Android/visionOS | yes | | getMaxMemory | 返回虚拟机将尝试使用的最大内存量(字节)。 | Promise | No | Android/Windows/Web | no | | getMaxMemorySync | 返回虚拟机将尝试使用的最大内存量(字节)。 | number | No | Android/Windows/Web | no | | getModel | 获取设备型号。 | string | No | IOS/Android | yes | | getPowerState | 获取设备电源状态,包括电池电量、是否正在充电以及系统是否处于低功耗模式。 | Promise | No | IOS/Android/Windows/Web/visionOS | yes | | getPowerStateSync | 获取设备电源状态,包括电池电量、是否正在充电以及系统是否处于低功耗模式。 | object | No | IOS/Android/Windows/Web/visionOS | yes | | getProduct | 整体产品名称。 | Promise | No | Android | yes | | getProductSync | 整体产品名称。 | string | No | Android | yes | | getPreviewSdkInt | 预发布 SDK 的开发人员预览修订版。 | Promise | No | Android | no | | getPreviewSdkIntSync | 预发布 SDK 的开发人员预览修订版。 | number | No | Android | no | | getReadableVersion | 获取应用程序人类可读版本(等同于 getVersion() + '.' + getBuildNumber())。 | string | No | IOS/Android/Windows/visionOS | yes | | getSerialNumber | 获取设备序列号。在绝大多数情况下会是 'unknown',除非您拥有特权应用并且知道自己在做什么。 | Promise | No | Android/Windows | no | | getSerialNumberSync | 获取设备序列号。在绝大多数情况下会是 'unknown',除非您拥有特权应用并且知道自己在做什么。 | string | No | Android/Windows | no | | getSecurityPatch | 用户可见的安全补丁级别。 | Promise | No | Android | yes | | getSecurityPatchSync | 用户可见的安全补丁级别。 | string | No | Android | yes | | getSystemAvailableFeatures | 返回 Android 上可用的系统功能列表。 | Promise<string[]> | No | Android | no | | getSystemAvailableFeaturesSync | 返回 Android 上可用的系统功能列表。 | string[] | No | Android | no | | getSystemName | 获取设备操作系统名称。 | string | No | IOS/Android/Windows/visionOS | yes | | getSystemVersion | 获取设备操作系统版本。 | string | No | IOS/Android/Windows/visionOS | yes | | getTags | 描述构建的逗号分隔标签。 | Promise | No | Android | no | | getTagsSync | 描述构建的逗号分隔标签。 | string | No | Android | no | | getType | 构建类型。 | Promise | No | Android | yes | | getTypeSync | 构建类型。 | string | No | Android | yes | | getTotalDiskCapacity | 获取完整磁盘存储空间大小的方法(字节),考虑根文件系统和数据文件系统的计算。 | Promise | No | Android | no | | getTotalDiskCapacitySync | 获取完整磁盘存储空间大小的方法(字节),考虑根文件系统和数据文件系统的计算。 | number | No | Android | no | | getTotalDiskCapacityOld | 获取完整磁盘存储空间大小的旧实现方法(字节)。 | Promise | No | Android | no | | getTotalMemory | 获取设备总内存(字节)。 | Promise | No | IOS/Android/Web/visionOS | no | | getTotalMemorySync | 获取设备总内存(字节)。 | number | No | IOS/Android/Web/visionOS | no | | getUniqueId | 获取设备唯一 ID。在 Android 上,当前与此模块中的相同。 | Promise | No | IOS/Android/Windows/visionOS | no | | getUsedMemory | 获取应用程序内存使用量(字节)。 | Promise | No | IOS/Android/Windows/Web/visionOS | yes | | getUsedMemorySync | 获取应用程序内存使用量(字节)。 | string | No | IOS/Android/Windows/Web/visionOS | yes | | getUserAgent | 获取设备用户代理。 | Promise | No | IOS/Android/Web/visionOS | no | | getUserAgentSync | 获取设备用户代理。 | string | No | Android/Web | no | | getVersion | 获取应用程序版本。请注意版本字符串是设备/操作系统格式的,可能包含任何额外数据(如构建编号等)。如果您想确定版本格式,可以使用正则表达式从返回的版本字符串中获取所需部分。 | string | No | IOS/Android/Windows/visionOS | yes | | getBrightness | 获取设备主屏幕的当前亮度级别。目前仅限 iOS。返回 0.0 到 1.0 之间的数字(包含)。 | Promise | No | IOS | no | | getBrightnessSync | 获取设备主屏幕的当前亮度级别。目前仅限 iOS。返回 0.0 到 1.0 之间的数字(包含)。 | number | No | IOS | no | | hasGms | 判断设备是否支持 Google 移动服务。 | Promise | No | Android | yes | | hasGmsSync | 判断设备是否支持 Google 移动服务。 | boolean | No | Android | yes | | hasHms | 判断设备是否支持华为移动服务。 | Promise | No | Android | yes | | hasHmsSync | 判断设备是否支持华为移动服务。 | boolean | No | Android | yes | | hasNotch | 判断设备是否有刘海屏。 | boolean | No | IOS/Android/Windows/visionOS | no | | hasDynamicIsland | 判断设备是否有动态岛。 | boolean | No | IOS/Android/Windows/visionOS | no | | hasSystemFeature | 判断设备是否有特定的系统功能。 | Promise | No | Android | no | | hasSystemFeatureSync | 判断设备是否有特定的系统功能。 | boolean | No | Android | no | | isAirplaneMode | 判断设备是否处于飞行模式。 | Promise | No | Android/ Web | no | | isAirplaneModeSync | 判断设备是否处于飞行模式。 | boolean | No | Android/ Web | no | | isBatteryCharging | 判断电池是否正在充电。 | Promise | No | IOS/Android/Windows/Web/visionOS | yes | | isBatteryChargingSync | 判断电池是否正在充电。 | boolean | No | IOS/Android/Windows/Web/visionOS | yes | | isEmulator | 判断应用程序是否在模拟器中运行。 | Promise | No | IOS/Android/Windows/visionOS | no | | isEmulatorSync | 判断应用程序是否在模拟器中运行。 | boolean | No | IOS/Android/Windows/visionOS | no | | isKeyboardConnected | 判断设备是否连接了键盘。 | Promise | No | Windows | partially(Only supports asynchronous retrieval) | | isLandscape | 判断设备是否当前处于横屏模式。 | Promise | No | IOS/Android/Windows/visionOS | yes | | isLandscapeSync | 判断设备是否当前处于横屏模式。 | boolean | No | IOS/Android/Windows/visionOS | yes | | isLocationEnabled | 允许访问用户的位置信息。 | Promise | No | IOS/Android/Web/visionOS | yes | | isLocationEnabledSync | 允许访问用户的位置信息。 | boolean | No | IOS/Android/Web/visionOS | yes | | isMouseConnected | 判断设备是否连接了鼠标。 | Promise | No | Windows | partially(Only supports asynchronous retrieval) | | isHeadphonesConnected | 判断设备是否连接了耳机。 | Promise | No | IOS/Android/visionOS | yes | | isHeadphonesConnectedSync | 判断设备是否连接了耳机。 | boolean | No | IOS/Android/visionOS | yes | | isWiredHeadphonesConnected | 判断设备是否连接了有线耳机。 | Promise | No | IOS/Android/visionOS | yes | | isWiredHeadphonesConnectedSync | 判断设备是否连接了有线耳机。 | boolean | No | IOS/Android/visionOS | yes | | isBluetoothHeadphonesConnected | 判断设备是否连接了蓝牙耳机。 | Promise | No | IOS/Android/visionOS | yes | | isBluetoothHeadphonesConnectedSync | 判断设备是否连接了蓝牙耳机。 | boolean | No | IOS/Android/visionOS | yes | | isPinOrFingerprintSet | 判断是否为设备设置了 PIN 码或指纹。 | Promise | No | IOS/Android/Windows/visionOS | yes | | isPinOrFingerprintSetSync | 判断是否为设备设置了 PIN 码或指纹。 | boolean | No | IOS/Android/Windows/visionOS | no | | isTablet | 判断设备是否为平板电脑。 | boolean | No | IOS/Android/Windows/visionOS | yes | | isLowRamDevice | 判断设备是否内存不足。 | boolean | No | Android | yes | | isDisplayZoomed | 判断用户是否将显示缩放更改为放大模式。 | boolean | No | IOS | no | | isTabletMode | 判断设备是否处于平板模式。 | Promise | No | Windows | no | | supported32BitAbis | 设备支持 32 位 ABI。 | Promise<string[]> | No | Android | yes | | supported32BitAbisSync | 设备支持 32 位 ABI。 | string[] | No | Android | yes | | supported64BitAbis | 设备支持 64 位 ABI。 | Promise<string[]> | No | Android | yes | | supported64BitAbisSync | 设备支持 64 位 ABI。 | string[] | No | Android | yes | | supportedAbis | 设备支持的 ABI。 | Promise<string[]> | No | IOS/Android/Windows/visionOS | yes | | supportedAbisSync | 设备支持的 ABI。 | string[] | No | IOS/Android/Windows/visionOS | yes | | syncUniqueId | 此方法专为 iOS 设计,它将 uniqueId 与 IDFV 同步或设置新的随机字符串。在 iOS 上使用 DeviceUID uid 标识符。在其他平台上,仅调用此模块中的 getUniqueId()。 | Promise | No | IOS/visionOS | no | | getSupportedMediaTypeList | 此方法获取支持的媒体编解码器列表。 | Promise<string[]> | No | IOS/Android | yes | | getStartupTime14.0.4+ | 获取当前应用程序进程启动的时间,单位为毫秒。 | Promise<number> | No | iOS/Android/visionOS | yes | | getStartupTimeSync14.0.4+ | 获取当前应用程序进程启动的时间,单位为毫秒。 | number | No | iOS/Android/visionOS | yes | | getAppSetId | 获取应用集ID。 | Promise<object> | No | Android | no |

5. 遗留问题

  • [ ] getDeviceId()接口harmony暂不支持issue#8
  • [ ] getDeviceToken()接口harmony暂不支持issue#9
  • [ ] getFreeDiskStorage()接口harmony暂不支持 issue#11
  • [ ] getFreeDiskStorageOld()接口harmony暂不支持 issue#12
  • [ ] getInstallReferrer()接口harmony暂不支持 issue#13
  • [ ] getMaxMemory()接口harmony暂不支持 issue#15
  • [ ] getSerialNumber()接口harmony暂不支持 issue#16
  • [ ] getTags()接口harmony暂不支持 issue#17
  • [ ] getTotalDiskCapacity()接口harmony暂不支持 issue#18
  • [ ] getTotalDiskCapacityOld()接口harmony暂不支持 issue#19
  • [ ] getTotalMemory()接口harmony暂不支持 issue#20
  • [ ] getUniqueId()接口harmony暂不支持 issue#21
  • [ ] syncUniqueId()接口harmony暂不支持 issue#22
  • [ ] getUserAgent()接口harmony暂不支持 issue#23
  • [ ] getUserAgentSync()接口harmony暂不支持 issue#24
  • [ ] hasNotch()接口harmony暂不支持 issue#25
  • [ ] hasDynamicIsland()接口harmony暂不支持 issue#26
  • [ ] hasSystemFeature()接口harmony暂不支持 issue#27
  • [ ] isEmulator()接口harmony暂不支持 issue#28
  • [ ] isDisplayZoomed()接口harmony暂不支持 issue#29
  • [ ] getBrightness()接口harmony暂不支持 issue#30
  • [ ] isAirplaneMode()接口harmony暂不支持 issue#69

6. 其他

7. 开源协议

本项目基于 The MIT License (MIT) ,请自由地享受和参与开源。