# device

Device模块管理设备信息，用于获取手机设备的相关信息，如IMEI、IMSI、型号、厂商等。通过plus.device获取设备信息管理对象。

## 属性：

- imei: 设备的国际移动设备身份码
- imsi: 设备的国际移动用户识别码
- model: 设备的型号
- vendor: 设备的生产厂商
- uuid: 设备的唯一标识

## 方法：

- beep: 发出蜂鸣声
- dial: 拨打电话
- getInfo: 获取设备信息
- getOAID: 获取匿名设备标识符
- getVAID: 获取开发者匿名设备标识符
- getAAID: 获取应用匿名设备标识符
- getVolume: 获取设备的系统音量
- isWakelock: 获取程序是否一直保持唤醒（屏幕常亮）状态
- setWakelock: 设置应用是否保持唤醒（屏幕常亮）状态
- setVolume: 设置设备的系统音量
- vibrate: 设备振动

## 对象：

- DeviceInfo: 设备信息对象
- screen: Screen模块管理设备屏幕信息
- display: Display模块管理应用可使用的显示区域信息
- networkinfo: networkinfo模块用于获取网络信息
- os: OS模块管理操作系统信息

## 回调方法：

- DeviceSuccessCallback: 成功回调函数
- DeviceFailCallback: 失败回调函数
- DeviceCompleteCallback: 操作完成回调函数

## 权限：

5+功能模块（permissions）

    {
    // ...
    "permissions":{
    	// ...
    	"Device": {
    		"description": "设备信息"
    	}
    }
    }

# DeviceInfo

设备信息对象

    interface plus.device.DeviceInfo {
    	attribute String imei;
    	attribute String imsi;
    	attribute String uuid;
    }

## 属性：

- imei: (String 类型 )设备的国际移动设备身份码

  如果设备不支持或无法获取（如用户未授权）则返回空字符串。 如果设备存在多个身份码，则以“,”字符分割拼接，如“862470039452950,862470039452943”。

- imsi: (Array[ String ] 类型 )设备的国际移动用户识别码

  字符串数组类型，获取设备上插入SIM的国际移动设备身份码。 如果设备支持多卡模式则返回所有SIM身份码。 如果设备不支持或没有插入SIM卡则返回空数组。

- uuid: (String 类型 )设备标识

  设备的唯一标识号。

# screen

Screen模块管理设备屏幕信息

    interface plus.screen {
    	attribute String dpiX;
    	attribute String dpiY;
    	attribute Number height;
    	attribute Number width;
    	attribute Number resolutionHeight;
    	attribute Number resolutionWidth;
    	attribute Number scale;

    	function void setBrightness(brightness);
    	function Number getBrightness();
    	function void lockOrientation(orientation);
    	function void unlockOrientation();
    }

## 属性：

- dpiX: 设备屏幕水平方向的密度
- dpiY: 设备屏幕垂直方向的密度
- height: 屏幕高度物理分辨率
- width: 屏幕宽度物理分辨率
- resolutionHeight: 屏幕高度逻辑分辨率
- resolutionWidth: 屏幕宽度逻辑分辨率
- scale: 逻辑分辨率与物理分辨率的缩放比例

## 方法：

- setBrightness: 设置屏幕亮度
- getBrightness: 获取屏幕亮度值
- lockOrientation: 锁定屏幕方向
- unlockOrientation: 解除锁定屏幕方向

# display

Display模块管理应用可使用的显示区域信息

    interface plus.display {
    	attribute Number resolutionHeight;
    	attribute Number resolutionWidth;
    }

## 属性：

- resolutionHeight: 应用可使用的屏幕高度逻辑分辨率
- resolutionWidth: 应用可使用的屏幕宽度逻辑分辨率

# networkinfo

networkinfo模块用于获取网络信息

    interface plus.networkinfo {
    	const attribute Number CONNECTION_UNKNOW = 0;
    	const attribute Number CONNECTION_NONE = 1;
    	const attribute Number CONNECTION_ETHERNET = 2;
    	const attribute Number CONNECTION_WIFI = 3;
    	const attribute Number CONNECTION_CELL2G = 4;
    	const attribute Number CONNECTION_CELL3G = 5;
    	const attribute Number CONNECTION_CELL4G = 6;

    	function Number getCurrentType();
    }

## 常量：

- CONNECTION_UNKNOW: 网络连接状态未知
- CONNECTION_NONE: 未连接网络
- CONNECTION_ETHERNET: 有线网络
- CONNECTION_WIFI: 无线WIFI网络
- CONNECTION_CELL2G: 蜂窝移动2G网络
- CONNECTION_CELL3G: 蜂窝移动3G网络
- CONNECTION_CELL4G: 蜂窝移动4G网络

## 方法：

- getCurrentType: 获取设备当前连接的网络类型

# os

OS模块管理操作系统信息

    interface plus.os {
    	attribute String language;
    	attribute String name;
    	attribute String vendor;
    	attribute String version;
    }

## 属性：

- language: 系统语言信息
- name: 系统的名称
- vendor: 系统的供应商信息
- version: 系统版本信息

# DeviceSuccessCallback

成功回调函数

    void onSuccess(JSON event){
    }

## 说明：

不同接口触发的成功回调参数event包含的属性存在差异，具体参考对应的接口描述说明。

## 参数：

- event: ( JSON ) 必选 回调参数
  回调参数包含的属性由调用接口决定，具体参考对应的接口描述说明。

## 返回值：

void : 无

# DeviceFailCallback

失败回调函数

    function void onFail(Exception error){
    	// Handle error
    	var code = error.code; // 错误编码
    	var message = error.message; // 错误描述信息
    }

## 参数：

- error: ( Exception ) 必选 回调参数，错误信息
  可通过error.code（Number类型）获取错误编码； 可通过error.message（String类型）获取错误描述信息。

## 返回值：

void : 无

# DeviceCompleteCallback

操作完成回调函数

    function void onComplete(JSON event){
    }

## 说明：

调用成功或失败都会触发此回调。

## 参数：

- event: ( JSON ) 可选 回调参数
  调用成功时回调参数与DeviceSuccessCallback一致，调用失败时回调参数与DeviceFailCallback一致。

## 返回值：

void : 无