类: Device 
更新: 2025/7/20 字数: 0 字 时长: 0 分钟
device.Device
Device类提供获取设备状态、信息、调整设备亮度等方法。它是一个单例,只需要通过const { device } = require('device')即可获取实例。
继承关系 
EventEmitterDevice
目录 
Accessors 
- androidId
 - battery
 - batteryPluggedTypes
 - bootloader
 - brightness
 - brightnessMode
 - buildId
 - cpuApis
 - display
 - displayMetrics
 - externalStorageDirectory
 - fingerprint
 - hardware
 - imei
 - macAddress
 - memoryInfo
 - product
 - screenHeight
 - screenWidth
 - serial
 
方法 
Accessors 
androidId 
getandroidId():string
Android ID。
参见
https://developer.android.google.cn/reference/android/provider/Settings.Secure#ANDROID_ID
返回值
string
battery 
getbattery():number
设备的当前电量,为0~100之间的浮点数。
示例
"nodejs";
const { device } = require('device');
console.log(device.battery);返回值
number
batteryPluggedTypes 
getbatteryPluggedTypes():PluggedType[]
设备当前连接的电源类型,例如["usb"]表示连接了USB电源,["ac"]表示连接了交流电源,["wireless", "usb"]表示同时连接了无线和USB电源。如果设备没有连接电源,则返回空数组。
示例
"nodejs";
const { device } = require('device');
console.log(device.batteryPluggedTypes);返回值
bootloader 
getbootloader():string
系统Bootloader的版本号。
参见
https://developer.android.google.cn/reference/android/os/Build.html#BOOTLOADER
返回值
string
brightness 
getbrightness():number
设备的亮度,范围为0-255。
"nodejs";
const { device } = require("device");
// 打印当前的亮度
console.log(device.brightness);
// 设置亮度为255
device.brightness = 255;参见
https://developer.android.google.cn/reference/android/provider/Settings.System#SCREEN_BRIGHTNESS
返回值
number
setbrightness(value):void
参数
| 名称 | 类型 | 
|---|---|
value | number | 
返回值
void
brightnessMode 
getbrightnessMode():BrightnessMode
设备的亮度模式。
"nodejs";
const { device, BrightnessMode } = require("device");
// 打印当前的亮度模式
console.log(device.brightnessMode);
// 设置亮度为自动亮度
device.brightnessMode = BrightnessMode.AUTOMATIC;参见
返回值
setbrightnessMode(value):void
参数
| 名称 | 类型 | 
|---|---|
value | BrightnessMode | 
返回值
void
buildId 
getbuildId():string
设备的构建ID。
参见
https://developer.android.google.cn/reference/android/os/Build.html#ID
返回值
string
cpuApis 
getcpuApis():string[]
设备支持的CPU架构的数组,比如['arm64-v8a', 'armeabi-v7a']。
返回值
string[]
display 
getdisplay():string
显示给用户的构建ID。
参见
https://developer.android.google.cn/reference/android/os/Build.html#DISPLAY
返回值
string
displayMetrics 
getdisplayMetrics():DisplayMetrics
设置的显示相关信息,比如宽度、高度、像素密度等。
参见
返回值
externalStorageDirectory 
getexternalStorageDirectory():string
返回主要的共享/外部存储目录路径,对于现代的Android设备里面,一般指内部存储的目录路径。
注意:不要被这里的“外部”这个词弄糊涂了。最好将此目录视为媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并且在所有应用程序之间共享(不强制执行权限)。传统上这是一张 SD 卡,但它也可以作为设备中的内置存储实现,与受保护的内部存储不同,并且可以作为文件系统安装在计算机上。
在具有多个用户的设备上(如 UserManager 所述),每个用户都有自己的隔离共享存储。应用程序只能访问它们正在运行的用户的共享存储。
在具有多个共享/外部存储目录的设备中,此目录表示用户将与之交互的主存储。可通过 Context.getExternalFilesDirs(String)、Context.getExternalCacheDirs() 和 Context.getExternalMediaDirs() 访问辅助存储。
应用程序不应该直接使用这个顶级目录,以免污染用户的根命名空间。应用程序私有的任何文件都应放置在 Context.getExternalFilesDir 返回的目录中,如果卸载应用程序,系统将负责删除该目录。其他共享文件应放置在 getExternalStoragePublicDirectory 返回的目录之一中。
写入此路径需要 Manifest.permission.WRITE_EXTERNAL_STORAGE 权限,从 Build.VERSION_CODES.KITKAT 开始,读取权限需要 Manifest.permission.READ_EXTERNAL_STORAGE 权限,如果您拥有写入权限,则会自动授予该权限。
从 Build.VERSION_CODES.KITKAT 开始,如果您的应用程序只需要存储内部数据,请考虑使用不需要读取或写入权限的 Context.getExternalFilesDir(String)、Context.getExternalCacheDir() 或 Context.getExternalMediaDirs()。
此路径可能会在平台版本之间发生变化,因此应用程序应该只保留相对路径。
参见
https://developer.android.google.cn/reference/android/os/Environment#getExternalStorageDirectory()
返回值
string
fingerprint 
getfingerprint():string
构建的唯一标识字符串。
参见
https://developer.android.google.cn/reference/android/os/Build.html#FINGERPRINT
返回值
string
hardware 
gethardware():string
硬件名称。
参见
https://developer.android.google.cn/reference/android/os/Build.html#HARDWARE
返回值
string
imei 
getimei():null|string
设备的IMEI。若无权限获取,可能抛出异常;从Android 10开始,应用不再有权限获取IMEI。
参见
https://developer.android.google.cn/reference/android/telephony/TelephonyManager#getDeviceId()
返回值
null | string
macAddress 
getmacAddress():null|string
返回值
null | string
memoryInfo 
getmemoryInfo():MemoryInfo
获取当前设备的内存信息, 包括总内存、可用内存、是否低内存状态等。
内存单位为字节,即byte。
示例
"nodejs";
const { device } = require('device');
console.log(`total memory: ${device.memoryInfo.totalMem / 1024 / 1024} MB`);
console.log(device.memoryInfo);参见
返回值
product 
getproduct():Product
设备的产品信息,包括产品名称、设备名称、设备板名、产品品牌、产品型号。
示例
"nodejs";
const { device } = require('device');
console.log(device.product); 
// {
//  name: 'mars',
//  device: 'mars',
//  board: 'mars',
//  brand: 'Xiaomi',
//  model: 'M2102K1AC'
// }参见
https://developer.android.google.cn/reference/android/os/Build.html#PRODUCT
返回值
screenHeight 
getscreenHeight():number
设备的屏幕高度,单位为像素。
返回值
number
screenWidth 
getscreenWidth():number
设备的屏幕宽度,单位为像素。
返回值
number
serial 
getserial():string
设备的唯一标识符。从Android10开始,应用可能没有权限获取到此值。
参见
https://developer.android.google.cn/reference/android/os/Build.html#getSerial()
返回值
string
方法 
cancelVibration 
- cancelVibration(): 
void 
取消震动。
参见
https://developer.android.google.cn/reference/android/os/Vibrator.html#cancel()
返回值
void
getVolume 
- getVolume(
type):number 
根据类型获取音量,比如获取媒体音量为device.getVolume("music")。
参数
| 名称 | 类型 | 描述 | 
|---|---|---|
type | StreamType | 音量类型,参见StreamType | 
返回值
number
getVolumeRange 
- getVolumeRange(
type):StreamVolumeRange 
获取给定音量类型的音量范围,比如{min: 0, max: 15}。
参数
| 名称 | 类型 | 描述 | 
|---|---|---|
type | StreamType | 音量类型,参见StreamType | 
返回值
setVolume 
- setVolume(
type,volume,flags?):void 
设置音量,比如设置媒体音量为device.setVolume("music", 10)。
参数
| 名称 | 类型 | 默认值 | 描述 | 
|---|---|---|---|
type | StreamType | undefined | 音量类型,参见StreamType | 
volume | number | undefined | 要设置的音量 | 
flags | string[] | [] | 标志位,默认为空数组。比如['SHOW_UI', 'PLAY_SOUND', 'VIBRATE']表示调整音量时会弹出提示框,播放提示音,并震动。Flags可选的值参见AudioManager。 | 
返回值
void
vibrate 
- vibrate(
millis):void 
让设备震动一段时间,需要应用在前台时才能调用此函数。
参见
https://developer.android.google.cn/reference/android/os/Vibrator.html#vibrate(long)
参数
| 名称 | 类型 | 描述 | 
|---|---|---|
millis | number | 震动时间,单位毫秒 | 
返回值
void
