设备 - Device
## 取分辨率宽度 |width
| 函数名 | 返回值 | 备注 |
| ------------ | ------ | ------------------------------ |
| device.width | 整数型 | 设备屏幕分辨率宽度。例如1080。 |
```javascript
var str = device.width
```
## 取分辨率高度 |height
| 函数名 | 返回值 | 备注 |
| ------------- | ------ | ------------------------------ |
| device.height | 整数型 | 设备屏幕分辨率高度。例如1920。 |
```javascript
var str = device.height
```
## 取修订版本号 |buildId
| 函数名 | 返回值 | 备注 |
| -------------- | ------ | ------------------------------------- |
| device.buildId | 字符串 | 修订版本号,或者诸如"M4-rc20"的标识。 |
```javascript
var str = device.buildId
```
## 取主板型号 |broad
| 函数名 | 返回值 | 备注 |
| ------------ | ------ | ------------------- |
| device.broad | 字符串 | 设备的主板(?)型号。 |
```javascript
var str = device.broad
```
## 取厂商品牌 |brand
| 函数名 | 返回值 | 备注 |
| ------------ | ------ | -------------------------------------- |
| device.brand | 字符串 | 硬件厂商品牌,如"Xiaomi", "Huawei"等。 |
```javascript
var str = device.brand
```
## 取设备名称 |device
| 函数名 | 返回值 | 备注 |
| ------------- | ------ | ------------------------ |
| device.device | 字符串 | 设备在工业设计中的名称。 |
```javascript
var str = device.device
```
## 取设备型号 |model
| 函数名 | 返回值 | 备注 |
| ------------ | ------ | ---------- |
| deivce.model | 字符串 | 设备型号。 |
```javascript
var str = deivce.model
```
## 取产品名称 |product
| 函数名 | 返回值 | 备注 |
| -------------- | ------ | ---------------- |
| device.product | 字符串 | 整个产品的名称。 |
```javascript
var str = device.product
```
## 取蓝牙版本 |bootloader
| 函数名 | 返回值 | 备注 |
| ----------------- | ------ | ---------------- |
| device.bootloader | 字符串 | 设备蓝牙的版本。 |
```javascript
var str = device.bootloader
```
## 取硬件名称 |hardware
| 函数名 | 返回值 | 备注 |
| --------------- | ------ | ----------------------------------------- |
| device.hardware | 字符串 | 设备的硬件名称(来自内核命令行或者/proc)。 |
```javascript
var str = device.hardware
```
## 取唯一标识码 |fingerprint
| 函数名 | 返回值 | 备注 |
| ------------------ | ------ | ------------------------- |
| device.fingerprint | 字符串 | 构建(build)的唯一标识码。 |
```javascript
var str = deivce.fingerprint
```
## 取硬件序列号 |serial
| 函数名 | 返回值 | 备注 |
| ------------- | ------ | ------------ |
| device.serial | 字符串 | 硬件序列号。 |
```javascript
var str = deivce.serial
```
## 取安卓SDK |sdkInt
| 函数名 | 返回值 | 备注 |
| ------------- | ------ | ------------------------------------------ |
| device.sdkInt | 整数型 | 安卓系统SDK版本。例如安卓4.4的sdkInt为19。 |
```javascript
var str = deivce.sdkInt
```
## 取安卓系统版本 |release
| 函数名 | 返回值 | 备注 |
| -------------- | ------ | --------------------------------------- |
| device.release | 字符串 | Android系统版本号。例如"5.0", "7.1.1"。 |
```javascript
var str = deivce.release
```
## 取安全补丁 |securityPatch
| 函数名 | 返回值 | 备注 |
| -------------------- | ------ | -------------------- |
| deivce.securityPatch | 字符串 | 安全补丁程序级别。。 |
```javascript
var str = deivce.securityPatch
```
## 取开发代号 |codename
| 函数名 | 返回值 | 备注 |
| --------------- | ------ | ------------------------------- |
| device.codename | 字符串 | 开发代号,例如发行版是"REL"。。 |
```javascript
var str = deivce.codename
```
## 取设备IMEI |getIMEI
| 函数名 | 返回值 | 备注 |
| ---------------- | ------ | ---------------- |
| device.getIMEI() | 字符串 | 返回设备的IMEI。 |
```javascript
var str = deivce.getIMEI()
```
## 取安卓系统ID |getAndroidId
| 函数名 | 返回值 | 备注 |
| --------------------- | ------ | ---------------------- |
| device.getAndroidId() | 字符串 | 返回设备的Android ID。 |
```javascript
var str = deivce.getAndroidId()
Android ID为一个用16进制字符串表示的64位整数,在设备第一次使用时随机生成,之后不会更改,除非恢复出厂设置。
```
## 取设备Mac地址 |getMacAddress
| 函数名 | 返回值 | 备注 |
| ---------------------- | ------ | ------------------------------------------------------------ |
| device.getMacAddress() | 字符串 | 设备的Mac地址。该函数需要在有WLAN连接的情况下才能获取,否则会返回null。 |
```javascript
var str = deivce.getMacAddress()
可能的后续修改:未来可能增加有root权限的情况下通过root权限获取,从而在没有WLAN连接的情况下也能返回正确的Mac地址,因此请勿使用此函数判断WLAN连接。
```
## 取屏幕亮度 |getBrightness
| 函数名 | 返回值 | 备注 |
| ---------------------- | ------ | ----------------------------------- |
| device.getBrightness() | 整数型 | 返回当前的(手动)亮度。范围为0~255。 |
```javascript
var str = deivce.getBrightness()
```
## 取亮度模式 |getBrightnessMode
| 函数名 | 返回值 | 备注 |
| -------------------------- | ------ | -------------------------------------------- |
| device.getBrightnessMode() | 字符串 | 返回当前亮度模式,0为手动亮度,1为自动亮度。 |
```javascript
var str = deivce.getBrightnessMode()
```
## 设置屏幕亮度 |setBrightness
| 函数名 | 返回值 | 备注 |
| ---------------------- | -------- | ------------------------------------------------------------ |
| device.setBrightness() | | 设置当前手动亮度。如果当前是自动亮度模式,该函数不会影响屏幕的亮度。 |
| **参数名** | **类型** | |
| 亮度 | 整数型 | 范围0~255 |
```javascript
deivce.getBrightnessMode(100);
此函数需要"修改系统设置"的权限。如果没有该权限,会抛出SecurityException并跳转到权限设置界面。
```
## 设置亮度模式 |setBrightnessMode
| 函数名 | 返回值 | 备注 |
| -------------------------- | -------- | -------------------------- |
| device.setBrightnessMode() | | 设置当前亮度模式。 |
| **参数名** | **类型** | |
| 模式 | 整数型 | 0为手动亮度,1为自动亮度。 |
```javascript
deivce.setBrightnessMode(1)
此函数需要"修改系统设置"的权限。如果没有该权限,会抛出SecurityException并跳转到权限设置界面。
```
## 取媒体音量 |getMusicVolume
| 函数名 | 返回值 | 备注 |
| ----------------------- | ------ | ------------------ |
| device.getMusicVolume() | 整数型 | 返回当前媒体音量。 |
```javascript
var str = deivce.getMusicVolume()
```
## 取通知音量 |getNotificationVolume
| 函数名 | 返回值 | 备注 |
| ------------------------------ | ------ | ------------------ |
| device.getNotificationVolume() | 整数型 | 返回当前通知音量。 |
```javascript
var str = deivce.getNotificationVolume()
```
## 取闹钟音量 |getAlarmVolume
| 函数名 | 返回值 | 备注 |
| ----------------------- | ------ | ------------------ |
| device.getAlarmVolume() | 整数型 | 返回当前闹钟音量。 |
```javascript
var str = deivce.getAlarmVolume()
```
## 取媒体音量最大值 |getMusicMaxVolume
| 函数名 | 返回值 | 备注 |
| -------------------------- | ------ | ---------------------- |
| device.getMusicMaxVolume() | 整数型 | 返回媒体音量的最大值。 |
```javascript
var str = deivce.getMusicMaxVolume()
```
## 取通知音量最大值 |getNotificationMaxVolume
| 函数名 | 返回值 | 备注 |
| --------------------------------- | ------ | ---------------------- |
| device.getNotificationMaxVolume() | 整数型 | 返回通知音量的最大值。 |
```javascript
var str = deivce.getNotificationMaxVolume()
```
## 取闹钟音量最大值 |getAlarmMaxVolume
| 函数名 | 返回值 | 备注 |
| -------------------------- | ------ | ---------------------- |
| device.getAlarmMaxVolume() | 整数型 | 返回闹钟音量的最大值。 |
```javascript
var str = deivce.getAlarmMaxVolume()
```
## 设置媒体音量 |setMusicVolume
| 函数名 | 返回值 | 备注 |
| ----------------------- | -------- | ------------------ |
| device.setMusicVolume() | | 设置当前媒体音量。 |
| **参数名** | **类型** | |
| 音量 | 整数型 | |
```javascript
deivce.setMusicVolume(10)
此函数需要"修改系统设置"的权限。如果没有该权限,会抛出SecurityException并跳转到权限设置界面。
```
## 设置通知音量 |setNotificationVolume
| 函数名 | 返回值 | 备注 |
| ------------------------------ | -------- | ------------------ |
| device.setNotificationVolume() | | 设置当前通知音量。 |
| **参数名** | **类型** | |
| 音量 | 整数型 | |
```javascript
deivce.setNotificationVolume(10)
此函数需要"修改系统设置"的权限。如果没有该权限,会抛出SecurityException并跳转到权限设置界面。
```
## 设置闹钟音量 |setAlarmVolume
| 函数名 | 返回值 | 备注 |
| ----------------------- | -------- | ------------------ |
| device.setAlarmVolume() | 整数型 | 设置当前闹钟音量。 |
| **参数名** | **类型** | |
| 音量 | 整数型 | |
```javascript
deivce.setAlarmVolume(10)
此函数需要"修改系统设置"的权限。如果没有该权限,会抛出SecurityException并跳转到权限设置界面。
```
## 取电量百分比 |getBattery
| 函数名 | 返回值 | 备注 |
| ------------------- | ------ | -------------------- |
| device.getBattery() | 浮点数 | 返回当前电量百分比。 |
```javascript
var str = deivce.getBattery()
```
## 取充电状态 |isCharging
| 函数名 | 返回值 | 备注 |
| ------------------- | ------ | ---------------------- |
| device.isCharging() | 布尔型 | 返回设备是否正在充电。 |
```javascript
var str = deivce.isCharging()
```
## 取内存总量 |getTotalMem
| 函数名 | 返回值 | 备注 |
| -------------------- | ------ | --------------------------------------------------- |
| device.getTotalMem() | 整数型 | 返回设备内存总量,单位字节(B)。1MB = 1024 * 1024B。 |
```javascript
var str = deivce.getTotalMem()
```
## 取可用内存 |getAvailMem
| 函数名 | 返回值 | 备注 |
| -------------------- | ------ | ------------------------------------- |
| device.getAvailMem() | 整数型 | 返回设备当前可用的内存,单位字节(B)。 |
```javascript
var str = deivce.getAvailMem()
```
## 取屏幕状态 |isScreenOn
| 函数名 | 返回值 | 备注 |
| ------------------- | ------ | -------------------------- |
| device.isScreenOn() | 布尔型 | 返回设备屏幕是否是亮着的。 |
```javascript
var str = deivce.isScreenOn()
需要注意的是,类似于vivo xplay系列的息屏时钟不属于"屏幕亮着"的情况,虽然屏幕确实亮着但只能显示时钟而且不可交互,此时isScreenOn()也会返回false。
```
## 唤醒设备 |wakeUp
| 函数名 | 返回值 | 备注 |
| --------------- | ------ | ----------------------------------------------------- |
| device.wakeUp() | | 唤醒设备。包括唤醒设备CPU、屏幕等。可以用来点亮屏幕。 |
```javascript
deivce.wakeUp()
```
## 设置屏幕常亮时间 |keepScreenOn
| 函数名 | 返回值 | 备注 |
| --------------------- | -------- | ------------------------------------------------------------ |
| device.keepScreenOn() | | 保持屏幕常亮。 |
| **参数名** | **类型** | |
| 时间 | 整数型 | 屏幕保持常亮的时间,单位毫秒。如果不加此参数,则一直保持屏幕常亮。 |
```javascript
//屏幕保持常亮3秒
deivce.keepScreenOn(3000);
//一直保持屏幕常亮
device.keepScreenOn()
此函数无法阻止用户使用锁屏键等正常关闭屏幕,只能使得设备在无人操作的情况下保持屏幕常亮;同时,如果此函数调用时屏幕没有点亮,则会唤醒屏幕。
在某些设备上,如果不加参数timeout,只能在Auto.js的界面保持屏幕常亮,在其他界面会自动失效,这是因为设备的省电策略造成的。因此,建议使用比较长的时长来代替"一直保持屏幕常亮"的功能,例如device.keepScreenOn(3600 * 1000)。
可以使用device.cancelKeepingAwake()来取消屏幕常亮。
```
## 设置屏幕常亮时间 |keepScreenDim
| 函数名 | 返回值 | 备注 |
| ---------------------- | ------ | ------------------------------------------------------------ |
| device.keepScreenDim() | | 保持屏幕常亮,但允许屏幕变暗来节省电量。 |
| | | |
| 时间 | 整数型 | 屏幕保持常亮的时间, 单位毫秒。如果不加此参数,则一直保持屏幕常亮 |
```javascript
deivce.keepScreenDim()
此函数可以用于定时脚本唤醒屏幕操作,不需要用户观看屏幕,可以让屏幕变暗来节省电量。
此函数无法阻止用户使用锁屏键等正常关闭屏幕,只能使得设备在无人操作的情况下保持屏幕常亮;同时,如果此函数调用时屏幕没有点亮,则会唤醒屏幕。
可以使用device.cancelKeepingAwake()来取消屏幕常亮
```
## 取消设备唤醒状态 |cancelKeepingAwake
| 函数名 | 返回值 | 备注 |
| --------------------------- | ------ | ---------------------- |
| device.cancelKeepingAwake() | | 取消设备保持唤醒状态。 |
```javascript
deivce.cancelKeepingAwake()
用于取消device.keepScreenOn(), device.keepScreenDim()等函数设置的屏幕常亮。
```
## 设备震动 |vibrate
| 函数名 | 返回值 | 备注 |
| ---------------- | -------- | -------------------- |
| device.vibrate() | | 使设备震动一段时间。 |
| **参数名** | **类型** | |
| 震动时间 | 整数型 | 单位毫秒 |
```javascript
//震动两秒
device.vibrate(2000);
```
## 取消震动 |cancelVibration
| 函数名 | 返回值 | 备注 |
| ------------------------ | ------ | ---------------------------------- |
| device.cancelVibration() | | 如果设备处于震动状态,则取消震动。 |
```javascript
deivce.cancelVibration()
```