7 API接口函数一览¶
7.1 Unity相关¶
请参考UnityXR官方提供的相关API :https://docs.unity3d.com/Manual/VRReference.html
目前支持如下模块:
XRDisplaySubsystem:https://docs.unity3d.com/Manual/xrsdk-display.html
XRInputSubsystem:https://docs.unity3d.com/Manual/xrsdk-input.html
XRNodeState:https://docs.unity3d.com/ScriptReference/XR.XRNodeState.html
XRSettings:https://docs.unity3d.com/ScriptReference/XR.XRSettings.html
XRStats:https://docs.unity3d.com/ScriptReference/XR.XRStats.html
7.2 手柄相关¶
图7.1 PXR_Input脚本文件路径
IsControllerConnected¶
函数名:public static bool IsControllerConnected(Controller controller)
功能:获取手柄连接状态
参数:controller:左右手柄
返回值:true:连接、false:未连接
调用方式:PXR_Input.IsControllerConnected (controller)
GetDominantHand¶
函数名:public static Controller GetDominantHand()
功能:获取主控手柄
返回值:Controller.LeftController/Controller.RightController
调用方式:PXR_Input.GetDominantHand()
SetDominantHand¶
函数名:public static void SetDominantHand(Controller controller)
功能:设置主控手柄
参数:controller:左右手柄
返回值:无
调用方式:PXR_Input. SetDominantHand (controller)
SetControllerVibration¶
函数名:public static void SetControllerVibration(float strength, int time, Controller controller)
功能:使手柄震动
参数:震动强度strength:0-1,持续时间单位毫秒time:0-65535,controller:左右手柄
返回值:无
调用方式:PXR_Input.SetControllerVibration (strength, time, controller)
GetControllerPredictPosition¶
函数名:public static Vector3 GetControllerPredictPosition(Controller controller, float predictTime)
功能:获取手柄预测位置值
参数:controller:左右手柄,predictTime:预测时间(单位毫秒)
返回值:位置值 调用方式:PXR_Input.GetControllerPredictPosition(controller, predictTime)
备注:1.2.2版本新增接口
GetControllerPredictRotation¶
函数名:public static Quaternion GetControllerPredictRotation(Controller controller, float predictTime)
功能:获取手柄预测旋转值
参数:controller:左右手柄,predictTime:预测时间(单位毫秒)
返回值:旋转值 调用方式:PXR_Input.GetControllerPredictRotation(controller, predictTime)
备注:1.2.2版本新增接口
SetControllerOriginOffset¶
函数名:public static void SetControllerOriginOffset(Controller controller, Vector3 offset)
功能:设置手柄坐标原点位置偏移值
参数:controller:左右手柄,offset:位置偏移值(单位米)
返回值:无
调用方式:PXR_Input.SetControllerOriginOffset(controller, offset)
备注:1.2.3版本新增接口
GetPredictedDisplayTime¶
函数名:public static float GetPredictedDisplayTime()
功能:获取上屏的预测时间(从图像生成到上屏的延迟时间)
参数:无
返回值:时间,单位毫秒
调用方式:PXR_System.GetPredictedDisplayTime();
GetControllerHandness(New)¶
函数名:public static Controller GetControllerHandness ()
功能:获取当前的惯用手柄索引
参数:无
返回值:Controller
调用方式:PXR_Input. GetControllerHandness ();
7.3 眼球追踪相关¶
本章接口适用于Neo2 Eye和Neo3 Pro Eye。
GetCombineEyeGazePoint¶
函数名:public static bool GetCombineEyeGazePoint(out Vector3 point)
功能:获取当前左右眼合并注视点位置
参数:接收结果返回的vector3变量
返回值:获取成功返回true,失败返回false
调用方式: PXR_EyeTracking.GetCombineEyeGazePoint ()
GetCombineEyeGazeVector¶
函数名:public static bool GetCombineEyeGazeVector(out Vector3 vector)
功能:获取当前左右眼合并注视点方向
参数:接收结果返回的vector3变量
返回值:获取成功返回true,失败返回false
调用方式: PXR_EyeTracking.GetCombineEyeGazeVector(out Vector3 vector)
GetLeftEyeGazePoint¶
函数名:public static bool GetLeftEyeGazePoint (out Vector3 vector)
功能:获取当前左眼的注视点原点
参数:接收结果返回的vector3变量
返回值:获取成功返回true,失败返回false
调用方式: PXR_EyeTracking . GetLeftEyeGazePoint (out Vector3 vector)
GetRightEyeGazePoint¶
函数名:public static bool GetRightEyeGazePoint (out Vector3 vector)
功能:获取当前右眼的注视点原点
参数:接收结果返回的vector3变量
返回值:获取成功返回true,失败返回false
调用方式: PXR_EyeTracking . GetRightEyeGazePoint (out Vector3 vector)
GetLeftEyeGazeOpenness¶
函数名:public static bool GetLeftEyeGazeOpenness (out float openness)
功能:获取当前左眼的睁眼闭眼数据
参数:接收结果返回的float变量,范围为0.0—1.0,0.0代表完全闭眼,1.0代表完成睁眼
返回值:获取成功返回true,失败返回false
调用方式: PXR_EyeTracking . GetLeftEyeGazeOpenness (out float openness)
GetRightEyeGazeOpenness¶
函数名:public static bool GetRightEyeGazeOpenness(out float openness)
功能:获取当前右眼的睁眼闭眼数据
参数:接收结果返回的float变量,范围为0.0—1.0,0.0代表完全闭眼,1.0代表完成睁眼
返回值:获取成功返回true,失败返回false
调用方式: PXR_EyeTracking . GetRightEyeGazeOpenness (out float openness)
GetLeftEyePoseStatus¶
函数名:public static bool GetLeftEyePoseStatus(out uint status)
功能:获取当前左眼的数据状态
参数:接收结果返回的int变量,0代表数据状态不好,1代表数据状态良好
返回值:获取成功返回true,失败返回false
调用方式: PXR_EyeTracking.GetLeftEyePoseStatus (out uint status)
GetRightEyePoseStatus¶
函数名:public static bool GetRightEyePoseStatus (out uint status)
功能:获取当前右眼的数据状态
参数:接收结果返回的int变量,0代表数据状态不好,1代表数据状态良好
返回值:获取成功返回true,失败返回false
调用方式: PXR_EyeTracking.GetRightEyePoseStatus (out uint status)
GetCombinedEyePoseStatus¶
函数名:public static bool GetCombinedEyePoseStatus(out uint status)
功能:获取当前左右眼混合的数据状态
参数:接收结果返回的int变量,0代表数据状态不好,1代表数据状态良好
返回值:获取成功返回true,失败返回false
调用方式: PXR_EyeTracking.GetCombinedEyePoseStatus (out uint status)
GetLeftEyePositionGuide¶
函数名:public static bool GetLeftEyePositionGuide (out Vector3 position)
功能:获取当前左眼的位置指引
参数:接收结果返回的vector3变量
返回值:获取成功返回true,失败返回false
调用方式: PXR_EyeTracking.GetLeftEyePositionGuide (out Vector3 position)
GetRightEyePositionGuide¶
函数名:public static bool GetRightEyePositionGuide (out Vector3 position)
功能:获取当前右眼的位置指引
参数:接收结果返回的vector3变量
返回值:获取成功返回true,失败返回false
调用方式: PXR_EyeTracking.GetRightEyePositionGuide (out Vector3 position)
GetFoveatedGazeDirection¶
函数名:public static bool GetFoveatedGazeDirection(out Vector3 position)
功能:获取注视点渲染的视线方向
参数:接收结果返回的vector3变量
返回值:获取成功返回true,失败返回false
调用方式: PXR_EyeTracking.GetFoveatedGazeDirection (out Vector3 position)
7.4 注视点渲染相关¶
图7.2 PXR_FovertionRendering脚本文件路径
GetFoveatedRenderingLevel¶
函数名:public static FoveationLevel GetFoveationLevel()
功能:获取当前注视点渲染级别
参数:无
返回值:当前注视点渲染级别
调用方式: PXR_FoveationRendering. GetFoveationLevel()
SetFoveatedRenderingLevel¶
函数名:public static void SetFoveationLevel (FoveationLevel level)
功能:设置注视点渲染级别
参数:目标注视点渲染级别,可设置None,Low,Med,High四种级别,None关闭
返回值:无
调用方式: PXR_FoveationRendering.SetFoveationLevel(level)
SetFoveatedRenderingParameters¶
函数名:public static void SetFoveationParameters(foveationGainX, foveationGainY, foveationArea, foveationMinimum)
功能:设置当前注视点渲染参数
参数:目标注视点渲染参数
foveationGainX/Y:X/Y轴方向外围像素的缩减率,值越大缩减的越多
foveationArea:注视点周围分辨率不降范围,值越大,中心清晰区域越大
foveationMinimum:默认最小像素密度,像素密度大于等于foveationMinimum
SDK提供四种Level:
Level | foveationGain | foveationArea | foveationMinimum |
---|---|---|---|
Low | (3.0f,3.0f) | 1.0f | 0.125f |
Med | (4.0f,4.0f) | 1.0f | 0.125f |
High | (6.0f,6.0f) | 1.0f | 0.0625f |
Top High | (7.0f,7.0f) | 0.0f | 0.0625f |
返回值:无
调用方式: PXR_FoveationRendering. SetFoveatedRenderingParameters(foveationGainX, foveationGainY, foveationArea, foveationMinimum)
7.5 安全区防护边界相关¶
图7.3 PXR_Boundary脚本文件路径
GetConfigured¶
函数名:public static bool GetConfigured()
功能:获取当前安全区防护系统是否配置成功
参数:无
返回值:true: 配置成功 false:配置失败
调用方式: PXR_Boundary.GetConfigured()
GetEnabled¶
函数名:public static bool GetEnabled ()
功能:获取当前安全区防护系统是否开启
参数:无
返回值:true: 开启 false:关闭
调用方式: PXR_Boundary.GetEnabled ()
SetVisible¶
函数名:public static void SetVisible(bool value)
功能:强制设置安全区防护边界是否可见(注意:安全区正常触发或用户通过系统设置安全区将会覆盖该接口的操作)
参数:value:安全区是否可见
返回值:无
调用方式: PXR_Boundary.SetVisible(value)
GetVisible¶
函数名:public static bool GetVisible()
功能:获取安全区防护边界是否可见
参数: 无
返回值:安全区是否可见
调用方式: PXR_Boundary.GetVisible()
TestNode¶
函数名:public static BoundaryTestResult TestNode(BoundaryTrackingNode node, BoundaryType boundaryType)
功能:返回追踪节点对指定边界类型的测试结果
参数:node:追踪节点,boundaryType:边界类型
返回值:BoundaryTestResult 测试结果结构体
public struct BoundaryTestResult
{
public bool IsTriggering; // 是否触发边界
public float ClosestDistance; // 追踪节点与边界的最近距离
public Vector3 ClosestPoint; // 追踪节点与边界的最近点位置
public Vector3 ClosestPointNormal; // 最近点法线
}
调用方式: PXR_Boundary.TestNode(node, boundaryType);
TestPoint¶
函数名:public static BoundaryTestResult TestPoint(Vector3 point, BoundaryType boundaryType)
功能:返回任意3D点坐标对指定的边界类型的测试结果
参数:point:点坐标,boundaryType:边界类型
返回值:BoundaryTestResult 测试结果结构体
public struct BoundaryTestResult
{
public bool IsTriggering; // 是否触发边界
public float ClosestDistance; // 追踪节点与边界的最近距离
public Vector3 ClosestPoint; // 追踪节点与边界的最近点位置
public Vector3 ClosestPointNormal; // 最近点法线
}
调用方式: PXR_Boundary .TestPoint(point, boundaryType);
GetGeometry¶
函数名:public static Vector3[]GetGeometry(BoundaryType boundaryType)
功能:返回安全区边界的点集合
参数:boundaryType:安全区边界类型
返回值:Vector3[]:安全区边界点集合
调用方式: PXR_Boundary .GetGeometry(boundaryType);
GetDimensions¶
函数名:public static Vector3 GetDimensions (BoundaryType boundaryType)
功能:获取自定义安全边界PlayArea的尺寸
参数:boundaryType:安全区边界类型
返回值:Vector3,x:PlayArea长边,y:1,z:PlayArea短边,如果是原地安全区,V3为(0,0,0)调用方式: PXR_Boundary.GetDimensions (boundaryType);
GetDialogState¶
函数名:public static int GetDialogState ()
功能:获取 boundary 对话框状态
参数:无
返回值:NothingDialog = -1,GobackDialog = 0,ToofarDialog = 1,LostDialog = 2,LostNoReason = 3,LostCamera = 4,LostHighLight = 5,LostLowLight = 6,LostLowFeatureCount = 7,LostReLocation = 8
调用方式: PXR_Boundary.GetDialogState();
7.6 SeeThrough Camera相关¶
EnableSeeThroughManual¶
函数名:public static void EnableSeeThroughManual(bool value)
功能:获取Neo2/Neo3设备的相机画面并作为环境背景
参数:value:SeeThrough是否开启,true开启,false关闭
返回值:无
调用方式: PXR_Boundary.EnableSeeThroughManual (value);
其它: 1.Camera 的clear flags 设置为solid color
2.Camera 的background 颜色alpha通道设置为0
7.7 设备相关¶
注意: 在使用电量音量亮度等服务前请首先调用接口InitAudioDevice进行初始化
InitAudioDevice¶
函数名:public bool InitAudioDevice()
功能:初始化音量设备
返回值:true: 成功 false:失败
调用方式:PXR_System.InitAudioDevice()
StartAudioReceiver¶
函数名:public bool StartAudioReceiver(string startreceiver)
功能:开启音量服务
参数:开启音量的 gameobject 名字
返回值:true: 成功 false:失败
调用方式:PXR_System.StartAudioReceiver(startreceiver)
setAudio¶
函数名:public void setAudio(string s)
功能:音量发生变化时的回调
参数:当前音量
返回值:无
调用方式:可在此方法内直接增加逻辑或者使用 delegate 来调用
StopAudioReceiver¶
函数名:public bool StopAudioReceiver()
功能:关闭音量服务
参数:无
返回值:true: 成功 false:失败
调用方式:PXR_System.StopAudioReceiver()
StartBatteryReceiver¶
函数名:public bool StartBatteryReceiver(string startreceiver)
功能:开启电量服务
参数:开启电量的 gameobject 名字
返回值:true: 成功 false:失败
调用方式:PXR_System.StartBatteryReceiver(startreceiver)
setBattery¶
函数名:public void setBattery(string s)
功能:电量发生变化时的回调
参数:当前的电量(范围是 0.00~1.00)
返回值:无
调用方式:可在此方法内直接增加逻辑或者使用 delegate 来调用
StopBatteryReceiver¶
函数名:public bool UPvr_StopBatteryReceiver()
功能:关闭电量服务
参数:无
返回值:true: 成功 false:失败
调用方式:PXR_System.StopBatteryReceiver()
VolumeUp¶
函数名:public bool VolumeUp()
功能:提高音量(需要初始化音量设备)
参数:无
返回值:true: 成功 false:失败
调用方式:PXR_System.VolumeUp()
VolumeDown¶
函数名:public bool VolumeDown()
功能:降低音量(需要初始化音量设备)
参数:无
返回值:true: 成功 false:失败
调用方式:PXR_System.VolumeDown()
GetCommonBrightness¶
函数名:public int GetCommonBrightness()
功能:获取当前通用设备亮度值
参数:无
返回值:当前亮度值(亮度值的范围是 0~255)
调用方式:PXR_System.GetCommonBrightness()
SetCommonBrightness¶
函数名:public bool SetCommonBrightness(int brightness)
功能:设置当前通用设备亮度值
参数:亮度值(亮度值的范围是 0~255)
返回值:true:成功, false:失败
调用方式:PXR_System.SetCommonBrightness(brightness)
SetExtraLatencyMode¶
函数名:public static bool SetExtraLatencyMode(ExtraLatencyMode mode)
参数:
public enum ExtraLatencyMode
{
ExtraLatencyModeOff = 0, // Disable ExtraLatencyMode mode. This option will display the latest rendered frame for display.
ExtraLatencyModeOn = 1, // Enable ExtraLatencyMode mode. This option will display one frame prior to the latest rendered frame.
ExtraLatencyModeDynamic = 2 // Use system default setup.
}
返回值:true: 成功,false: 失败
调用方示: PXR_System.SetExtraLatencyMode(ExtraLatencyMode.ExtraLatencyModeOff);
7.8 系统相关¶
通过系统相关接口,开发者可以在Pico系统设备上获取、设置部分系统配置。
支持设备:
G2 4K / G2 4K E (PUI版本3.11.3及以上);
Neo2 / Neo 2 Eye (PUI版本3.13.1及以上);
Neo 3 Pro / Neo 3 Pro Eye
使用本章节接口前,请进行System Service初始化,具体方法如下:
//初始化并绑定Service,其中objectName为接收回调的脚本物体名称
private void Awake()
{
PXR_System.InitSystemService(objectName);
PXR_System.BindSystemService();
}
//解除绑定Service
private void OnDestory()
{
PXR_System.UnBindSystemService();
}
//增加4个接收回调方法
private void BoolCallback(string value)
{
if (PXR_Plugin.System.BoolCallback != null) PXR_Plugin.System.BoolCallback(bool.Parse(value));
PXR_Plugin.System.BoolCallback = null;
}
private void IntCallback(string value)
{
if (PXR_Plugin.System.IntCallback != null) PXR_Plugin.System.IntCallback(int.Parse(value));
PXR_Plugin.System.IntCallback = null;
}
private void LongCallback(string value)
{
if (PXR_Plugin.System.LongCallback != null) PXR_Plugin.System.LongCallback(int.Parse(value));
PXR_Plugin.System.LongCallback = null;
}
private void StringCallback(string value)
{
if (PXR_Plugin.System.StringCallback != null) PXR_Plugin.System.StringCallback(value);
PXR_Plugin.System.StringCallback = null;
}
调用接口前需确保Service已绑定成功。关于Service绑定成功的回调,请将以下代码添加到初始化的脚本中,绑定Service成功后,此方法会被调用。
public void toBServiceBind(string s){Debug.Log("Bind success.");}
7.8.1 普通接口¶
图7.4 PXR_System脚本文件路径
StateGetDeviceInfo¶
函数名:public static string StateGetDeviceInfo(SystemInfoEnum type)
功能:获取设备信息
参数:type:获取设备信息类型
SystemInfoEnum.ELECTRIC_QUANTITY:电量
SystemInfoEnum.PUI_VERSION:PUI 版本号
SystemInfoEnum.EQUIPMENT_MODEL:设备型号
SystemInfoEnum.EQUIPMENT_SN:设备 SN
SystemInfoEnum.CUSTOMER_SN:客户 SN
SystemInfoEnum.INTERNAL_STORAGE_SPACE_OF_THE_DEVICE:设备存储空间
SystemInfoEnum.DEVICE_BLUETOOTH_STATUS:蓝牙状态
SystemInfoEnum.BLUETOOTH_NAME_CONNECTED:蓝牙连接名称
SystemInfoEnum.BLUETOOTH_MAC_ADDRESS:蓝牙 Mac 地址
SystemInfoEnum.DEVICE_WIFI_STATUS:Wifi 连接状态
SystemInfoEnum.WIFI_NAME_CONNECTED:已连接 Wifi 名称
SystemInfoEnum.WLAN_MAC_ADDRESS:Wlan 的 Mac 地址
SystemInfoEnum.DEVICE_IP:设备 IP
返回值:string 设备信息
调用方式:PXR_Plugin.System.StateGetDeviceInfo(SystemInfoEnum.PUI_VERSION);
ControlSetAutoConnectWIFI¶
函数名:public static void ControlSetAutoConnectWIFI(string ssid, string pwd,Action<bool> callback)
功能:连接指定WiFi
参数:ssid:wifi名称,pwd:wifi密码,callback: Wifi连接是否成功
返回值:无
调用方式:PXR_Plugin.System.ControlSetAutoConnectWIFI(ssid, pwd, callback);
ControlClearAutoConnectWIFI¶
函数名:public static void ControlClearAutoConnectWIFI(Action<bool> callback)
功能:清除连接指定WiFi功能
参数:callback: 清除连接是否成功
返回值:无
调用方式:PXR_Plugin.System.ControlClearAutoConnectWIFI(callback);
PropertySetHomeKey¶
函数名:public static void PropertySetHomeKey(HomeEventEnum eventEnum, HomeFunctionEnum function, Action<bool> callback)
功能:重新定义Home键,会影响系统定义的Home键功能,请开发者酌情使用
参数:eventEnum:单击双击和长按事件
HomeEventEnum.SINGLE_CLICK:单击
HomeEventEnum.DOUBLE_CLICK:双击
HomeEventEnum.LONG_PRESS:长按
function:启动设置应用,返回,校准等
HomeFunctionEnum.VALUE_HOME_GO_TO_SETTING:打开设置
HomeFunctionEnum.VALUE_HOME_BACK:返回
HomeFunctionEnum.VALUE_HOME_RECENTER:校准
HomeFunctionEnum.VALUE_HOME_OPEN_APP:打开指定 APP
HomeFunctionEnum.VALUE_HOME_DISABLE:禁用HOME键
HomeFunctionEnum.VALUE_HOME_GO_TO_HOME:打开Launcher
HomeFunctionEnum.VALUE_HOME_SEND_BROADCAST:发送HOME键点击广播
HomeFunctionEnum.VALUE_HOME_CLEAN_MEMORY:清空后台
callback:设置是否成功
返回值:无
调用方式:PXR_Plugin.System.UPxr_PropertySetHomeKey(eventEnum,function, callback);
PropertySetHomeKeyAll¶
函数名:public static void PropertySetHomeKeyAll(HomeEventEnum eventEnum, HomeFunctionEnum function, int timesetup, string pkg, string className, Action<bool> callback)
功能:home 按键扩展设置
参数:eventEnum:单击双击和长按事件
HomeEventEnum.SINGLE_CLICK:单击
HomeEventEnum.DOUBLE_CLICK:双击
HomeEventEnum.LONG_PRESS:长按
function:启动设置应用,返回,校准等
HomeFunctionEnum.VALUE_HOME_GO_TO_SETTING:打开设置
HomeFunctionEnum.VALUE_HOME_BACK:返回
HomeFunctionEnum.VALUE_HOME_RECENTER:校准
HomeFunctionEnum.VALUE_HOME_OPEN_APP:打开指定 APP
HomeFunctionEnum.VALUE_HOME_DISABLE:禁用 HOME 键
HomeFunctionEnum.VALUE_HOME_GO_TO_HOME:打开 Launcher
HomeFunctionEnum.VALUE_HOME_SEND_BROADCAST:发送 HOME 键点击广播
HomeFunctionEnum.VALUE_HOME_CLEAN_MEMORY:清空后台
timesetup:只有双击和长按事件有事件才设置按键间隔时间;短按传0即可
pkg:当function是HOME_FUNCTION_OPEN_APP: 传入指定的包名;其他情况传null
className:当function是HOME_FUNCTION_OPEN_APP: 传入指定的类名;其他情况传null
callback:设置是否成功回调
返回值:无
调用方式:PXR_Plugin.System.PropertySetHomeKeyAll(eventEnum,function, timesetup, pkg, className, callback);
PropertyDisablePowerKey¶
函数名:public static void PropertyDisablePowerKey(bool isSingleTap, bool enable,Action<int> callback)
功能:power 按键设置
参数:isSingleTap : 单击事件[true],长按事件[false],enable:按键使能状态
callback 设置是否成功
返回值:无
调用方式:PXR_Plugin.System.PropertyDisablePowerKey(isSingleTap, enable, callback);
PropertySetScreenOffDelay¶
函数名:public static void PropertySetScreenOffDelay(ScreenOffDelayTimeEnum timeEnum,Action<int> callback)
功能:屏幕关闭超时设置,时间不能大于系统休眠超时时间
参数:timeEnum:屏幕关闭超时时间
ScreenOffDelayTimeEnum. THREE:3 秒
ScreenOffDelayTimeEnum. TEN:10 秒
ScreenOffDelayTimeEnum. THIRTY:30 秒
ScreenOffDelayTimeEnum. SIXTY:60 秒
ScreenOffDelayTimeEnum. THREE_HUNDRED:5 分钟
ScreenOffDelayTimeEnum. SIX_HUNDRED:10 分钟
ScreenOffDelayTimeEnum. NEVER:永久
callback:设置是否成功
返回值:无
调用方式:PXR_Plugin.System.PropertySetScreenOffDelay(timeEnum, callback);
PropertySetSleepDelay¶
函数名:public static void PropertySetSleepDelay(SleepDelayTimeEnum timeEnum)
功能:系统休眠超时设置
参数:timeEnum:系统休眠超时时间
SleepDelayTimeEnum. FIFTEEN:15 秒
SleepDelayTimeEnum. THIRTY:30 秒
SleepDelayTimeEnum. SIXTY:60 秒
SleepDelayTimeEnum. THREE_HUNDRED:5 分钟
SleepDelayTimeEnum. SIX_HUNDRED:10 分钟
SleepDelayTimeEnum. ONE_THOUSAND_AND_EIGHT_HUNDRED:30 分钟
SleepDelayTimeEnum. NEVER:永久
返回值:无
调用方式:PXR_Plugin.System.PropertySetSleepDelay(timeEnum);
SwitchSystemFunction¶
函数名:public static void SwitchSystemFunction(SystemFunctionSwitchEnum systemFunction, SwitchEnum switchEnum)
功能:常用系统开关设置
参数:systemFunction:功能类型
SystemFunctionSwitchEnum.SFS_USB:USB 调试开关
SystemFunctionSwitchEnum.SFS_AUTOSLEEP:自动休眠开关
SystemFunctionSwitchEnum.SFS_SCREENON_CHARGING:亮屏充电开关
SystemFunctionSwitchEnum.SFS_OTG_CHARGING:OTG 充电开关
SystemFunctionSwitchEnum.SFS_RETURN_MENU_IN_2DMODE:2D 界面下返回图标显示开关
SystemFunctionSwitchEnum.SFS_COMBINATION_KEY:组合键开关
SystemFunctionSwitchEnum.SFS_CALIBRATION_WITH_POWER_ON:开机校准开关
SystemFunctionSwitchEnum.SFS_SYSTEM_UPDATE:系统升级开关
SystemFunctionSwitchEnum.SFS_CAST_SERVICE:手机投屏开关,行业解决方案开关打开时,该属性不生效
SystemFunctionSwitchEnum.SFS_EYE_PROTECTION:护眼模式开关
SystemFunctionSwitchEnum.SFS_SECURITY_ZONE_PERMANENTLY:Net2 6Dof 安全区永久关闭开关
SystemFunctionSwitchEnum.SFS_GLOBAL_CALIBRATION:全局校准开关(仅 G2 系列有,CV2 系列无)
SystemFunctionSwitchEnum.SFS_Auto_Calibration:自动校准开关
SystemFunctionSwitchEnum.SFS_USB_BOOT:USB 插入启动开关
switchEnum:开关值
SwitchEnum.S_ON:开
SwitchEnum.S_OFF:关
返回值:无
调用方式:PXR_Plugin.System.SwitchSystemFunction(systemFunction,switchEnum);
SwitchSetUsbConfigurationOption¶
函数名:public static void SwitchSetUsbConfigurationOption(USBConfigModeEnum uSBConfigModeEnum)
功能:USB配置模式设置(MTP、充电)
参数:uSBConfigModeEnum:MTP,充电
USBConfigModeEnum.MTP:MTP 模式
USBConfigModeEnum.CHARGE:充电模式
返回值:无
调用方式:PXR_Plugin.System.SwitchSetUsbConfigurationOption(uSBConfigModeEnum);
AcquireWakeLock¶
函数名:public static void AcquireWakeLock()
功能:请求wakelock接口
参数:无
返回值:无
调用方式:PXR_Plugin. System.AcquireWakeLock ();
ReleaseWakeLock¶
函数名:public static void ReleaseWakeLock()
功能:释放wakelock接口
参数:无
返回值:无
调用方式:PXR_Plugin. System.ReleaseWakeLock ();
EnableEnterKey¶
函数名:public static void EnableEnterKey()
功能:恢复确认键
参数:无
返回值:无
调用方式:PXR_Plugin. System.EnableEnterKey();
DisableEnterKey¶
函数名:public static void DisableEnterKey()
功能:屏蔽确认键
参数:无
返回值:无
调用方式:PXR_Plugin. System.DisableEnterKey();
EnableVolumeKey¶
函数名:public static void EnableVolumeKey()
功能:恢复音量键
参数:无
返回值:无
调用方式:PXR_Plugin.System.EnableVolumeKey();
DisableVolumeKey¶
函数名:public static void DisableVolumeKey()
功能:屏蔽音量键
参数:无
返回值:无
调用方式:PXR_Plugin.System.DisableVolumeKey();
EnableBackKey¶
函数名:public static void EnableBackKey()
功能:恢复返回键
参数:无
返回值:无
调用方式:PXR_Plugin.System.EnableBackKey();
DisableBackKey¶
函数名:public static void DisableBackKey()
功能:屏蔽返回键
参数:无
返回值:无
调用方式:PXR_Plugin.System.DisableBackKey();
WriteConfigFileToDataLocal¶
函数名:public static void WriteConfigFileToDataLocal(string path, string content, Action<bool> callback)
功能:向Data/local/tmp下写配置文件
参数:path:配置文件路径( “/data/local/tmp/config.txt”),content:配置文件内容(“” ),callback:写入配置文件是否成功
返回值:无
调用方式:PXR_Plugin.System. WriteConfigFileToDataLocal(string path, string content, Action<bool> callback);
ResetAllKeyToDefault¶
函数名:public static void ResetAllKeyToDefault (Action<bool> callback)
功能:恢复默认按键配置
参数:callback:恢复默认按键配置是否成功
返回值:无
调用方式:PXR_Plugin.System. ResetAllKeyToDefault (Action<bool> callback);
OpenMiracast (New)¶
函数名:public static void OpenMiracast()
功能:开启投屏功能
参数:无
返回值:无
调用方式:PXR_System. OpenMiracast();
IsMiracastOn (New)¶
函数名:public static void IsMiracastOn()
功能:获取投屏开启状态
参数:无
返回值:true 开启 ;false关闭
调用方式:PXR_System. IsMiracastOn();
CloseMiracast (New)¶
函数名:public static void CloseMiracast()
功能:关闭投屏功能
参数:无
返回值:无
调用方式:PXR_System. CloseMiracast();
StartScan (New)¶
函数名:public static void StartScan()
功能:开始扫描
参数:无
返回值:无
调用方式:PXR_System. StartScan();
SetWDJsonCallback (New)¶
函数名:public static void SetWDJsonCallback()
功能:设定扫描结果callback,返回json字符串,包含过去连接过设备和扫描出的设备
参数:无
返回值:无
调用方式:PXR_System. SetWDJsonCallback();
ConnectWifiDisplay (New)¶
函数名:public static void ConnectWifiDisplay(string modelJson)
功能:投屏到指定设备
参数:modelJson:Callback返回的WifiDisplayModel
{
"deviceAddress": "e2:37:bf:76:33:c6",
"deviceName": "\u5BA2\u5385\u7684\u5C0F\u7C73\u7535\u89C6",
"isAvailable": "true",
"canConnect": "true",
"isRemembered": "false",
"statusCode": "-1",
"status": "",
"description": ""
}
返回值:无
调用方式:PXR_System. ConnectWifiDisplay(modelJson);
DisConnectWifiDisplay (New)¶
函数名:public static void DisConnectWifiDisplay()
功能:断开投屏
参数:无
返回值:无
调用方式:PXR_System. DisConnectWifiDisplay();
ForgetWifiDisplay (New)¶
函数名:public static void ForgetWifiDisplay(string address)
功能:忘记已连接过设备
参数:address:设备的地址
返回值:无
调用方式:PXR_System. ForgetWifiDisplay(address);
RenameWifiDisplay (New)¶
函数名:public static void RenameWifiDisplay (string address , string newName)
功能:修改已连接设备名称(只是本地存储名称)
参数:address:设备的地址,newName:设备新名称
返回值:无
调用方式:PXR_System. RenameWifiDisplay (address,newName);
UpdateWifiDisplays (New)¶
函数名:public static void UpdateWifiDisplays(Action<string> callback)
功能:手动更新列表
参数:callback:通过SetWDJsonCallback返回结果
返回值:无
调用方式:PXR_System. UpdateWifiDisplays(callback);
GetConnectedWD (New)¶
函数名:public static string GetConnectedWD()
功能:获取当前连接的设备信息
参数:无
返回值:返回当前连接的设备信息
调用方式:PXR_System. GetConnectedWD();
7.8.2 受保护接口¶
注意:调用以下接口需要在manifest里添加以下标签,添加此标签后无法上架Pico Store。
<meta-data android:name=”pico_advance_interface” android:value=”0”/>
ControlSetDeviceAction¶
函数名:public static void ControlSetDeviceAction(DeviceControlEnum deviceControl,Action<int> callback)
功能:控制设备关机、重启
参数:deviceControl:控制类型关机、重启
DeviceControlEnum.DEVICE_CONTROL_REBOOT:重启
DeviceControlEnum.DEVICE_CONTROL_SHUTDOWN:关机
callback: 回调接口,关机/重启是否成功
返回值:无
调用方式:PXR_Plugin.System.ControlSetDeviceAction(DeviceControlEnum.DEVICE_CONTROL_SHUTDOWN, callback);
ControlAPPManger¶
函数名:public static void ControlAPPManger(PackageControlEnum packageControl, string path, Action<int> callback)
功能:应用控制静默安装,静默卸载
参数:packageControl:应用控制类型静默安装,静默卸载
PackageControlEnum.PACKAGE_SILENCE_INSTALL:安装
PackageControlEnum.PACKAGE_SILENCE_UNINSTALL:卸载
path:静默安装的安装包路径/静默卸载的应用包名
callback: 回调接口, 安装/卸载是否成功
返回值:无
调用方式:
PXR_Plugin.System.ControlAPPManger(PackageControlEnum.PACKAGE_SILENCE_UNINSTALL, “com.xxx.xxx”, callback);
ScreenOn¶
函数名:public static void ScreenOn()
功能:控制设备开屏
参数:无
返回值:无
调用方式:PXR_Plugin.System. ScreenOn();
ScreenOff¶
函数名:public static void ScreenOff()
功能:控制设备关屏
参数:无
返回值:无
调用方式:PXR_Plugin.System. ScreenOff();
KillAppsByPidOrPackageName (New)¶
函数名:public static void KillAppsByPidOrPackageName(int[] pids, string[] packageNames)
功能:通过传入应用pid或应用包名方式杀死应用
参数:pids:应用pid数组, packageNames:应用包名数组
返回值:无
调用方式:PXR_System. KillAppsByPidOrPackageName(pids, packageNames);
7.9 成就系统相关¶
7.9.1 准备工作¶
开发者在接入成就系统时,需要在开发者平台创建应用并获取APP ID。申请流程如下:
- 登录开发者平台并注册Pico会员(https://developer.pico-interactive.com/)
- 申请成为开发者
开发者分为个人开发者和企业开发者,请根据实际情况进行申请。审核提交后,我们会在3个工作日内进行反馈,请及时查看开发者平台状态。
- 查看商户ID
- 创建成就信息
点击“查看”进入应用详情页。如果您还没有任何应用,请先“创建应用”,创建应用成功后,平台会自动分配应用唯一标识APP ID。
图7.5 开发者平台
在详情页面底部找到并点击“平台服务配置 – 成就”。
图7.6 开发者平台
在成就页面可以看到您已创建的所有成就。如果您还没有任何成就,请点击“创建”。
图7.7 开发者平台
按要求填写成就的信息。填入的API 名称必须代码中的保持一致。
- 成就类型
(1). 简单类型:通过单个事件或目标完成来解锁,无成就进展
(2). 计数器类型:到达指定目标个数时解锁(e.g. 完成5个解锁,target=5)
(3). 位域类型:到达指定范围的指定目标个数时解锁(e.g. 完成指定7个目标中的3个解锁,Target=3,Bitfield Length=7)
- 配置APPID
(1). 在工程Platform Settings和Manifest.xml中配置有效APP ID:
图7.8 Platform Settings面板
(2)AndroidManifest配置详情参考9.1.1,9.1.2支付章节
7.9.2 接口调用¶
Init¶
函数名:public static PXR_Request<PXR_AchievementUpdate> Init()
功能:成就系统初始化
参数:无
返回值:接口调用结果
调用方式: PXR_Achievement.Init()
GetAllDefinitions¶
函数名:public static PXR_Request<PXR_AchievementDefinitionList> GetAllDefinitions()
功能:获取所有成就定义信息
参数:无
返回值:接口调用结果
调用方式: PXR_Achievement. GetAllDefinitions ()
GetAllProgress¶
函数名:public static PXR_Request<PXR_AchievementProgressList> GetAllProgress()
功能:获取所有已修改成就进度信息
参数:无
返回值:接口调用结果
调用方式: PXR_Achievement. GetAllProgress ()
GetDefinitionsByName¶
函数名:public static PXR_Request<PXR_AchievementDefinitionList> GetDefinitionsByName(string[] names)
功能:根据name获取成就定义信息
参数:names:要获取定义信息的成就apiname数组
返回值:接口调用结果
调用方式: PXR_Achievement. GetDefinitionsByName (names)
GetProgressByName¶
函数名:public static PXR_Request<PXR_AchievementProgressList> GetProgressByName(string[] names)
功能:根据name获取成就进度信息
参数:names:要获取定义信息的成就apiname数组
返回值:接口调用结果
调用方式: PXR_Achievement. GetProgressByName (names)
AddCount¶
函数名:public static PXR_Request<PXR_AchievementUpdate> AddCount(string name, long count)
功能:count类型成就增加
参数:name:成就apiname,count:增加数
返回值:接口调用结果
调用方式: PXR_Achievement. AddCount (name, count)
AddFields¶
函数名:public static PXR_Request<PXR_AchievementUpdate> AddFields(string name, string fields)
功能:bitfield类型成就增加
参数:name:成就apiname,fields:增加数
返回值:接口调用结果
调用方式: PXR_Achievement. AddFields (name, bitfield)
Unlock¶
函数名:public static PXR_Request<PXR_AchievementUpdate> Unlock(string name)
功能:根据apiname解锁成就
参数:name:成就apiname
返回值:接口调用结果
调用方式: PXR_Achievement. Unlock (name)
GetNextAchievementDefinitionListPage¶
函数名:public static PXR_Request<PXR_AchievementDefinitionList> GetNextAchievementDefinitionListPage(PXR_AchievementDefinitionList list)
功能:获取所有成就定义信息时,若存在多页,获取下一页
参数:无
返回值:接口调用结果
调用方式: PXR_Achievement. GetNextAchievementDefinitionListPage(achievementDefinitionList)
GetNextAchievementProgressListPage¶
函数名:public static PXR_Request<PXR_AchievementProgressList> GetNextAchievementProgressListPage(PXR_AchievementProgressList list)
功能:获取所有已修改成就进度信息时,若存在多页,获取下一页
参数:无
返回值:接口调用结果
调用方式: PXR_Achievement. GetNextAchievementProgressListPage(achievementProgressList)
7.9.3 使用注意事项¶
(1). 请先使用Pico账号登陆设备,再使用成就接口和功能
(2). 为了避免由于设备账号切换、退登导致的成就数据出现误差,请在应用Resume()中重新调用一次初始化,以确保应用获取正确的用户登陆信息。
(3). 开发调试阶段可以通过以下方式调试和测试
- Logcat
- 通过开发者平台-应用-成就信息页查看数据