device常见问题我要提意见

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

属性:

方法:

对象:

回调方法:

权限:

5+功能模块(permissions)


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

imei

设备的国际移动设备身份码


plus.device.imei;
				

说明:

String 类型 只读属性

此API将废弃,HBuilderX2.0.0以后版本使用plus.device.getInfo
调用此属性获取设备的国际移动设备身份码。 如果设备不支持则返回空字符串。 如果设备存在多个身份码,则以“,”字符分割拼接,如“862470039452950,862470039452943”。

平台支持:

示例:


//获取设备的国际移动设备身份码
function getIMEI(){
	console.log("IMEI: "+plus.device.imei);
}
				

uni-app使用plus注意事项

imsi

设备的国际移动用户识别码


plus.device.imsi;
				

说明:

Array[String] 类型 只读属性

此API将废弃,HBuilderX2.0.0以后版本使用plus.device.getInfo
字符串数组类型,获取设备上插入SIM的国际移动设备身份码。 如果设备支持多卡模式则返回所有SIM身份码。 如果设备不支持或没有插入SIM卡则返回空数组。

平台支持:

示例:


//获取设备的国际移动用户识别码
function getIMSI(){
	console.log("IMSI: " + plus.device.imsi);
}
				

uni-app使用plus注意事项

model

设备的型号


plus.device.model;
				

说明:

String 类型 只读属性

调用此属性获取设备的型号信息。 如果设备不支持则返回空字符串。

示例:


//获取设备的型号
function getModel(){
	console.log("Model: " + plus.device.model);
}
				

uni-app使用plus注意事项

vendor

设备的生产厂商


plus.device.vendor;
				

说明:

String 类型 只读属性

调用此属性获取设备的生产厂商信息。 如果设备不支持则返回空字符串。

平台支持:

示例:


//获取设备的生产厂商
function getVendor(){
	console.log("Vendor: " + plus.device.vendor);
}
				

uni-app使用plus注意事项

uuid

设备的唯一标识


plus.device.uuid;
				

说明:

String 类型 只读属性

此API将废弃,HBuilderX2.0.0以后版本使用plus.device.getInfo
调用此属性获取设备的唯一标识号。

平台支持:

示例:


//获取设备的唯一标识号
function getUUID(){
	console.log("UUID: "+plus.device.uuid);
}
				

uni-app使用plus注意事项

beep

发出蜂鸣声


void plus.device.beep(times);
				

说明:

调用此方法使得设备发出蜂鸣声。

参数:

返回值:

void : 无

平台支持:

示例:


//发出蜂鸣声
function beep(){
	plus.device.beep( 3 );
}
    			

uni-app使用plus注意事项

dial

拨打电话


void plus.device.dial(number, confirm);
				

说明:

调用系统程序拨打电话。

参数:

返回值:

void : 无

平台支持:

示例:


//拨打电话
function dial() {
	plus.device.dial("10086", false);
}
    			

uni-app使用plus注意事项

getInfo

获取设备信息


void plus.device.getInfo(options);
				

说明:

包括国际移动设备身份码、国际移动用户识别码、设备的唯一标识等信息。
Android平台调用此方法需要申请访问设备标识(部分设备提示为拨打电话)权限,详情参考https://ask.dcloud.net.cn/article/36075

参数:

options参数为json类型,包含以下属性:

返回值:

void : 无

示例:


// 获取设备信息
function getDeviceInfo(){
	plus.device.getInfo({
		success:function(e){
			console.log('getDeviceInfo success: '+JSON.stringify(e));
		},
		fail:function(e){
			console.log('getDeviceInfo failed: '+JSON.stringify(e));
		}
	});
}
				

uni-app使用plus注意事项

getOAID

获取匿名设备标识符


void plus.device.getOAID(options);
				

说明:

HBuilderX2.4.0+版本新增支持。
Android10以前获取设备标识(如IMEI、IMSI、Wi-Fi MAC地址等)涉及用户隐私且需用户授权,Android10+系统不再支持获取设备标识信息。为解决此问题移动安全联盟联合各手机厂商推出移动智能设备标识公共服务平台提供补充设备标识体系,包括匿名设备标识符(OAID)、开发者匿名设备标识符(VAID)和应用匿名设备标识符(AAID)。
匿名设备标识符(OAID)最长为64位字符串,所有应用获取的值相同,可用于个性化推荐、广告等业务。 系统首次启动后生成,用户手动重置、恢复出厂设置、设备商重置、被刷机等操作会重置此标识。

参数:

options参数为json类型,包含以下属性:

返回值:

void : 无

平台支持:

示例:


// 获取匿名设备标识符
function getOAID(){
	plus.device.getOAID({
		success:function(e){
			console.log('getOAID success: '+JSON.stringify(e));
		},
		fail:function(e){
			console.log('getOAID failed: '+JSON.stringify(e));
		}
	});
}
				

uni-app使用plus注意事项

getVAID

获取开发者匿名设备标识符


void plus.device.getVAID(options);
				

说明:

HBuilderX2.4.0+版本新增支持。
Android10以前获取设备标识(如IMEI、IMSI、Wi-Fi MAC地址等)涉及用户隐私且需用户授权,Android10+系统不再支持获取设备标识信息。为解决此问题移动安全联盟联合各手机厂商推出移动智能设备标识公共服务平台提供补充设备标识体系,包括匿名设备标识符(OAID)、开发者匿名设备标识符(VAID)和应用匿名设备标识符(AAID)。
开发者匿名设备标识符(VAID)最长为64位字符串,同一开发者不同应用获取的值相同,可用于同一开发者不同应用之间的推荐等。 在应用安装时生成,用户恢复出厂设置、卸载所有开发商应用、设备商重置、被刷机等操作会重置此标识。

参数:

options参数为json类型,包含以下属性:

返回值:

void : 无

平台支持:

示例:


// 获取开发者匿名设备标识符
function getVAID(){
	plus.device.getVAID({
		success:function(e){
			console.log('getVAID success: '+JSON.stringify(e));
		},
		fail:function(e){
			console.log('getVAID failed: '+JSON.stringify(e));
		}
	});
}
				

uni-app使用plus注意事项

getAAID

获取应用匿名设备标识符


void plus.device.getAAID(options);
				

说明:

HBuilderX2.4.0+版本新增支持。
Android10以前获取设备标识(如IMEI、IMSI、Wi-Fi MAC地址等)涉及用户隐私且需用户授权,Android10+系统不再支持获取设备标识信息。为解决此问题移动安全联盟联合各手机厂商推出移动智能设备标识公共服务平台提供补充设备标识体系,包括匿名设备标识符(OAID)、开发者匿名设备标识符(VAID)和应用匿名设备标识符(AAID)。
应用匿名设备标识符(AAID)最长为64位字符串,每个应用获取的值都不相同,可用于用户统计等。 在应用安装时生成,用户恢复出厂设置、卸载应用、清空应用数据、设备商重置等操作会重置此标识。

参数:

options参数为json类型,包含以下属性:

返回值:

void : 无

平台支持:

示例:


// 获取应用匿名设备标识符
function getAAID(){
	plus.device.getAAID({
		success:function(e){
			console.log('getAAID success: '+JSON.stringify(e));
		},
		fail:function(e){
			console.log('getAAID failed: '+JSON.stringify(e));
		}
	});
}
				

uni-app使用plus注意事项

getDeviceId

获取DCloud匿名设备标识符


String plus.device.getDeviceId();
				

说明:

HBuilderX3.6.7+版本新增支持。
DCloud平台提供的设备标识,为32位字符串。
此值并不能保证不同应用获取的值相同,应用卸载后重装获取的值可能不同。
Android平台,获取DCloud设备标识符时如果已经获取OAID,则通过OAID生成;如果可以获取设备IMEI,则通过IMEI生成;否则根据算法随机生成标识符。
iOS平台,首次安装应用时根据算法随机生成设备标识符,并跟应用签名证书关联,只要应用签名证书不变,应用卸载后重装获取的值不变。

参数:

返回值:

String : DCloud匿名设备标识符

平台支持:

getVolume

获取设备的系统音量


Number plus.device.getVolume();
				

说明:

系统音量值范围为0到1,0表示静音,1表示最大音量值。

参数:

返回值:

Number : 系统的音量值

平台支持:

isWakelock

获取程序是否一直保持唤醒(屏幕常亮)状态


Boolean plus.device.isWakelock();
				

说明:

调用此方法获取程序是否一致保持唤醒状态。

参数:

返回值:

Boolean : 返回ture表示程序已设置为一直保持唤醒状态,返回false表示程序未设置为一直保持唤醒状态。

setWakelock

设置应用是否保持唤醒(屏幕常亮)状态


plus.device.setWakelock(lock);
				

说明:

调用此方法设置应用是否一直保持唤醒状态,保持唤醒状态将会导致程序屏幕常亮、系统不会自动锁屏,从而导致消耗更多的电量。若未设置一直保持唤醒状态则会根据系统设置自动锁定屏幕。

参数:

返回值:

void : 无

示例:


// 设置应用保持唤醒(屏幕常亮)状态
function setWakelock(){
	plus.device.setWakelock(true);
}
    			

uni-app使用plus注意事项

setVolume

设置设备的系统音量


plus.device.setVolume(volume);
				

说明:

调用此方法调节设备的系统音量。

参数:

返回值:

void : 无

平台支持:

示例:


// 设备的系统音量值
function setVolume(){
	plus.device.setVolume(0.5);
}
				

uni-app使用plus注意事项

vibrate

设备振动


plus.device.vibrate(milliseconds);
				

说明:

调用此方法使得设备振动。

参数:

返回值:

void : 无

平台支持:

示例:


// 设备振动
function vibrate(){
	plus.device.vibrate(2000);
}
    			

uni-app使用plus注意事项

DeviceInfo

设备信息对象


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

属性:

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

设备屏幕水平方向的密度


plus.screen.dpiX;
						

说明:

Number 类型 只读属性

设备屏幕的密度为每英寸所显示的像素点数,密度越高显示清晰度越高,单位为dpi。

平台支持:

示例:


// 获取水平方向密度
function getDPI(){
	plus.nativeUI.alert("DPI X: " + plus.screen.dpiX);
}
						

uni-app使用plus注意事项

dpiY

设备屏幕垂直方向的密度


plus.screen.dpiY;
						

说明:

Number 类型 只读属性

设备屏幕的密度为每英寸所显示的像素点数,密度越高显示清晰度越高,单位为dpi。

平台支持:

示例:


// 获取垂直方向密度
function getDPI(){
	plus.nativeUI.alert("DPI Y: " + plus.screen.dpiY);
}
						

uni-app使用plus注意事项

height

屏幕高度物理分辨率


// 获取物理高度
plus.screen.height;
						

说明:

Number 类型 只读属性

单位为px,设备屏幕的实际物理分辨率。 物理分辨率跟屏幕密度相关,通常建议使用逻辑分辨率。

示例:


function getHeight(){
	plus.nativeUI.alert("Height: " + plus.screen.height);
}
    					

uni-app使用plus注意事项

width

屏幕宽度物理分辨率


plus.screen.width;
						

说明:

Number 类型 只读属性

单位为px,设备屏幕的实际物理分辨率。 物理分辨率跟屏幕密度相关,通常建议使用逻辑分辨率。

示例:


// 获取物理宽度
function getWidth(){
	plus.nativeUI.alert("Width: " + plus.screen.width);
}
    					

uni-app使用plus注意事项

resolutionHeight

屏幕高度逻辑分辨率


plus.screen.resolutionHeight;
						

说明:

Number 类型 只读属性

单位为px, 逻辑分辨率为物理分辨率除以缩放比例scale取整。 取整操作可能出现精度丢失,对精度要求高时可使用物理分辨率和scal计算。

示例:


// 获取逻辑高度
function getResolutionHeight(){
	plus.nativeUI.alert("Resolution Height: " + plus.screen.resolutionHeight);
}
    					

uni-app使用plus注意事项

resolutionWidth

屏幕宽度逻辑分辨率


plus.screen.resolutionWidth;
						

说明:

Number 类型 只读属性

单位为px,逻辑分辨率为物理分辨率除以缩放比例scale取整。 取整操作可能出现精度丢失,对精度要求高时可使用物理分辨率和scal计算。

示例:


// 获取逻辑宽度
function getResolutionWidth(){
	plus.nativeUI.alert("Resolution Width: " + plus.screen.resolutionWidth);
}
    					

uni-app使用plus注意事项

scale

逻辑分辨率与物理分辨率的缩放比例


plus.screen.scale;
						

说明:

Number 类型 只读属性

由于设备屏幕密度不同,在html页面中使用的像素值都是使用逻辑分辨率。 而逻辑分辨率与设备的实际物理分辨率存在一定的比例关系,实际物理分辨率=逻辑分辨率*比例。

平台支持:

示例:


// 获取逻辑分辨率与物理分辨率的缩放比例
function getScale(){
	plus.nativeUI.alert("Scale: " + plus.screen.scale);
}
						

uni-app使用plus注意事项

setBrightness

设置屏幕亮度


plus.screen.setBrightness(brightness);
						

说明:

调用此方法调节设备屏幕亮度。

参数:

返回值:

void : 无

平台支持:

示例:


// 设置屏幕亮度
function setBrightness(){
	plus.screen.setBrightness( 0.5 );
}
						

uni-app使用plus注意事项

getBrightness

获取屏幕亮度值


Number plus.screen.getBrightness();
						

说明:

屏幕亮度值范围为0到1,0表示最低亮度值,1表示最高亮度值。

参数:

返回值:

Number : 返回程序的屏幕亮度值

示例:


// 获取屏幕亮度
function getBrightness(){
	plus.nativeUI.alert("Brightness: " + plus.screen.getBrightness());
}
						

uni-app使用plus注意事项

getCurrentSize

获取当前屏幕信息


JSON plus.screen.getCurrentSize();
						

说明:

当前屏幕的宽、高信息,返回数据包括以下属性:

注意:HBuilderX2.6.9+版本支持。

参数:

返回值:

JSON : 屏幕的宽、高信息

示例:


// 获取当前屏幕信息
function getScreenInfo(){
	var info = plus.screen.getCurrentSize();
	console.log('ScreenInfo: "+JSON.stringify(info));
}
						

uni-app使用plus注意事项

lockOrientation

锁定屏幕方向


void plus.screen.lockOrientation(orientation);
						

说明:

锁定屏幕方向后屏幕只能按锁定的屏幕方向显示,关闭当前页面后仍然有效。 可再次调用此方法修改屏幕锁定方向或调用unlockOrientation()方法恢复到应用的默认值。

参数:

返回值:

void : 无

示例:


// 锁定屏幕方向
function lockOrientation(){
	plus.screen.lockOrientation("landscape-primary");
}
						

uni-app使用plus注意事项

unlockOrientation

解除锁定屏幕方向


void plus.screen.unlockOrientation();
						

说明:

解除锁定屏幕方向后将恢复应用默认的屏幕显示方向(通常为应用打包发布时设置的方向)。

参数:

返回值:

void : 无

示例:


// 解除锁定屏幕方向
function unlockOrientation(){
	plus.screen.unlockOrientation();
}
						

uni-app使用plus注意事项

display

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


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

属性:

resolutionHeight

应用可使用的屏幕高度逻辑分辨率


plus.display.resolutionHeight;
						

说明:

Number 类型 只读属性

设备屏幕区域包括系统状态栏显示区域和应用显示区域,display获取的是应用显示区域的逻辑分辨率,单位为px。 如果需要获取实际分辨率则需要乘以比例值scale。

平台支持:

resolutionWidth

应用可使用的屏幕宽度逻辑分辨率


plus.display.resolutionWidth;
						

说明:

Number 类型 只读属性

设备屏幕区域包括系统状态栏显示区域和应用显示区域,display获取的是应用显示区域的逻辑分辨率,单位为px。 如果需要获取实际分辨率则需要乘以比例值scale。

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();
	function Boolean isSetProxy();
}
				

常量:

方法:

CONNECTION_UNKNOW

网络连接状态未知


plus.networkinfo.CONNECTION_UNKNOW;
						

说明:

Number 类型

网络状态常量,表示当前设备网络状态未知,固定值为0。

CONNECTION_NONE

未连接网络


plus.networkinfo.CONNECTION_NONE;
						

说明:

Number 类型

网络状态常量,当前设备网络未连接网络,固定值为1。

CONNECTION_ETHERNET

有线网络


plus.networkinfo.CONNECTION_ETHERNET;
						

说明:

Number 类型

网络状态常量,当前设备连接到有线网络,固定值为2。

CONNECTION_WIFI

无线WIFI网络


plus.networkinfo.CONNECTION_WIFI;
						

说明:

Number 类型

网络状态常量,当前设备连接到无线WIFI网络,固定值为3。

CONNECTION_CELL2G

蜂窝移动2G网络


plus.networkinfo.CONNECTION_CELL2G;
						

说明:

Number 类型

网络状态常量,当前设备连接到蜂窝移动2G网络,固定值为4。

CONNECTION_CELL3G

蜂窝移动3G网络


plus.networkinfo.CONNECTION_CELL3G;
						

说明:

Number 类型

网络状态常量,当前设备连接到蜂窝移动3G网络,固定值为5。

平台支持

CONNECTION_CELL4G

蜂窝移动4G网络


plus.networkinfo.CONNECTION_CELL4G;
						

说明:

Number 类型

网络状态常量,当前设备连接到蜂窝移动4G网络,固定值为6。

平台支持

CONNECTION_CELL5G

蜂窝移动5G网络


plus.networkinfo.CONNECTION_CELL5G;
						

说明:

Number 类型

网络状态常量,当前设备连接到蜂窝移动5G网络,固定值为7。

平台支持

getCurrentType

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


Number plus.networkinfo.getCurrentType();
						

说明:

获取当前设备连接的网络类型,返回值为网络类型常量,可取值CONNECTION_*常量。

参数:

返回值:

Number : 设备当前网络类型

平台支持:

示例:


// 获取设备当前连接的网络类型
function getNetworkType(){
	var types = {}; 
	types[plus.networkinfo.CONNECTION_UNKNOW] = "Unknown connection"; 
	types[plus.networkinfo.CONNECTION_NONE] = "None connection"; 
	types[plus.networkinfo.CONNECTION_ETHERNET] = "Ethernet connection"; 
	types[plus.networkinfo.CONNECTION_WIFI] = "WiFi connection"; 
	types[plus.networkinfo.CONNECTION_CELL2G] = "Cellular 2G connection"; 
	types[plus.networkinfo.CONNECTION_CELL3G] = "Cellular 3G connection"; 
	types[plus.networkinfo.CONNECTION_CELL4G] = "Cellular 4G connection"; 

	console.log("Network: " + types[plus.networkinfo.getCurrentType()]);
}
						

uni-app使用plus注意事项

isSetProxy

获取当前网络是否设置代理


Boolean plus.networkinfo.isSetProxy();
						

说明:

注意:HBuilderX3.0.0及以上版本支持。

参数:

返回值:

Boolean : 如果设置了代理则返回true,否则返回false。

平台支持:

os

OS模块管理操作系统信息


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

属性:

language

系统语言信息


plus.os.language;
						

说明:

String 类型 只读属性

获取当前操作系统设置的系统语言,字符串类型数据,格式为"语言-地区",如"zh-CN"表示语言为简体中文、地区为中国大陆。

平台支持:

示例:


// 获取系统语言信息
function getLanguage(){
	console.log("OS language: " + plus.os.language);
}
						

uni-app使用plus注意事项

name

系统的名称


plus.os.name;
						

说明:

String 类型 只读属性

获取当前操作系统的名称,字符串类型数据。

平台支持:

示例:


// 获取系统的名称
function plusReady(){
	console.log("OS name: " + plus.os.name);
}
						

uni-app使用plus注意事项

vendor

系统的供应商信息


plus.os.vendor;
						

说明:

String 类型 只读属性

获取当前操作系统的供应商名称,字符串类型数据。

平台支持:

示例:


// 获取系统的供应商信息
function getVendor(){
	console.log("OS name: " + plus.os.vendor );
}
						

uni-app使用plus注意事项

version

系统版本信息


plus.os.version;
						

说明:

String 类型 只读属性

获取当前操作系统的版本信息,字符串类型数据。

平台支持:

示例:


// 获取系统版本信息
function getVersion(){
	console.log("OS version: " + plus.os.version);
}
						

uni-app使用plus注意事项

DeviceSuccessCallback

成功回调函数


void onSuccess(Object event){
}
				

说明:

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

参数:

返回值:

void : 无

DeviceFailCallback

失败回调函数


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

参数:

返回值:

void : 无

DeviceCompleteCallback

操作完成回调函数


function void onComplete(Object event){
}
				

说明:

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

参数:

返回值:

void : 无