.. _7 API接口函数一览: 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 手柄相关 ------------------------------ .. image:: _static/7.1.png 图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 注视点渲染相关 ------------------------------ .. image:: _static/7.2.png 图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 安全区防护边界相关 ------------------------------ .. image:: _static/7.3.png 图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 测试结果结构体 .. code-block:: C# 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 测试结果结构体 .. code-block:: C# 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 PassThroughSystem ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 功能:获取Neo2/Neo3设备的相机成像 调用方式: 参考8.9章节PassThrough 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() GetMaxVolumeNumber ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public int GetMaxVolumeNumber() 功能:获取最大音量(需要初始化音量设备) 参数:无 返回值:音量最大值 调用方式:PXR_System.GetMaxVolumeNumber() GetCurrentVolumeNumber ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public int GetCurrentVolumeNumber() 功能:获取当前音量(需要初始化音量设备) 参数:无 返回值:当前音量值(范围是 0~15) 调用方式:PXR_System.GetCurrentVolumeNumber() VolumeUp ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public bool VolumeUp() 功能:提高音量(需要初始化音量设备) 参数:无 返回值:true: 成功 false:失败 调用方式:PXR_System.VolumeUp() VolumeDown ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public bool VolumeDown() 功能:降低音量(需要初始化音量设备) 参数:无 返回值:true: 成功 false:失败 调用方式:PXR_System.VolumeDown() SetVolumeNum ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public bool SetVolumeNum(int volume) 功能:设置音量(需要初始化音量设备) 参数:设置的音量大小数值(音量值的范围是 0~15) 返回值:true: 成功 false:失败 调用方式:PXR_System.SetVolumeNum(volume) 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) 参数: .. code-block:: C# 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初始化,具体方法如下: .. code-block:: C# //初始化并绑定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成功后,此方法会被调用。 .. code-block:: C# public void toBServiceBind(string s){Debug.Log("Bind success.");} 7.8.1 普通接口 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. image:: _static/7.7.1.png 图7.4 PXR_System脚本文件路径 StateGetDeviceInfo ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static string StateGetDeviceInfo(SystemInfoEnum type) 功能:获取设备信息 参数:type:获取设备信息类型 .. code-block:: xml 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 callback) 功能:连接指定WiFi 参数:ssid:wifi名称,pwd:wifi密码,callback: Wifi连接是否成功 返回值:无 调用方式:PXR_Plugin.System.ControlSetAutoConnectWIFI(ssid, pwd, callback); ControlClearAutoConnectWIFI ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static void ControlClearAutoConnectWIFI(Action callback) 功能:清除连接指定WiFi功能 参数:callback: 清除连接是否成功 返回值:无 调用方式:PXR_Plugin.System.ControlClearAutoConnectWIFI(callback); PropertySetHomeKey ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static void PropertySetHomeKey(HomeEventEnum eventEnum, HomeFunctionEnum function, Action callback) 功能:重新定义Home键,会影响系统定义的Home键功能,请开发者酌情使用 参数:eventEnum:单击双击和长按事件 .. code-block:: xml HomeEventEnum.SINGLE_CLICK:单击 HomeEventEnum.DOUBLE_CLICK:双击 HomeEventEnum.LONG_PRESS:长按 function:启动设置应用,返回,校准等 .. code-block:: xml 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 callback) 功能:home 按键扩展设置 参数:eventEnum:单击双击和长按事件 .. code-block:: xml HomeEventEnum.SINGLE_CLICK:单击 HomeEventEnum.DOUBLE_CLICK:双击 HomeEventEnum.LONG_PRESS:长按 function:启动设置应用,返回,校准等 .. code-block:: xml 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 callback) 功能:power 按键设置 参数:isSingleTap : 单击事件[true],长按事件[false],enable:按键使能状态 callback 设置是否成功 返回值:无 调用方式:PXR_Plugin.System.PropertyDisablePowerKey(isSingleTap, enable, callback); PropertySetScreenOffDelay ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static void PropertySetScreenOffDelay(ScreenOffDelayTimeEnum timeEnum,Action callback) 功能:屏幕关闭超时设置,时间不能大于系统休眠超时时间 参数:timeEnum:屏幕关闭超时时间 .. code-block:: xml 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:系统休眠超时时间 .. code-block:: xml 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:功能类型 .. code-block:: xml 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:开关值 .. code-block:: xml SwitchEnum.S_ON:开 SwitchEnum.S_OFF:关 返回值:无 调用方式:PXR_Plugin.System.SwitchSystemFunction(systemFunction,switchEnum); SwitchSetUsbConfigurationOption ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static void SwitchSetUsbConfigurationOption(USBConfigModeEnum uSBConfigModeEnum) 功能:USB配置模式设置(MTP、充电) 参数:uSBConfigModeEnum:MTP,充电 .. code-block:: xml 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 callback) 功能:向Data/local/tmp下写配置文件 参数:path:配置文件路径( “/data/local/tmp/config.txt”),content:配置文件内容(“” ),callback:写入配置文件是否成功 返回值:无 调用方式:PXR_Plugin.System. WriteConfigFileToDataLocal(string path, string content, Action callback); ResetAllKeyToDefault ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static void ResetAllKeyToDefault (Action callback) 功能:恢复默认按键配置 参数:callback:恢复默认按键配置是否成功 返回值:无 调用方式:PXR_Plugin.System. ResetAllKeyToDefault (Action 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(); StopScan (New) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static void StopScan() 功能:停止扫描 参数:无 返回值:无 调用方式:PXR_System. StopScan(); SetWDJsonCallback (New) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static void SetWDJsonCallback() 功能:设定扫描结果callback,返回json字符串,包含过去连接过设备和扫描出的设备 参数:无 返回值:无 调用方式:PXR_System. SetWDJsonCallback(); ConnectWifiDisplay (New) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static void ConnectWifiDisplay(string modelJson) 功能:投屏到指定设备 参数:modelJson:Callback返回的WifiDisplayModel .. code-block:: C# { "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 callback) 功能:手动更新列表 参数:callback:通过SetWDJsonCallback返回结果 返回值:无 调用方式:PXR_System. UpdateWifiDisplays(callback); GetConnectedWD (New) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static string GetConnectedWD() 功能:获取当前连接的设备信息 参数:无 返回值:返回当前连接的设备信息 调用方式:PXR_System. GetConnectedWD(); 7.8.2 受保护接口 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 注意:调用以下接口需要在manifest里添加以下标签,添加此标签后无法上架Pico Store。 ControlSetDeviceAction ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static void ControlSetDeviceAction(DeviceControlEnum deviceControl,Action callback) 功能:控制设备关机、重启 参数:deviceControl:控制类型关机、重启 .. code-block:: xml 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 callback) 功能:应用控制静默安装,静默卸载 参数:packageControl:应用控制类型静默安装,静默卸载 .. code-block:: xml 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。申请流程如下: - 1. 登录开发者平台并注册Pico会员(https://developer.pico-interactive.com/) - 2. 申请成为开发者 开发者分为个人开发者和企业开发者,请根据实际情况进行申请。审核提交后,我们会在3个工作日内进行反馈,请及时查看开发者平台状态。 - 3. 查看商户ID - 4. 创建成就信息 点击“查看”进入应用详情页。如果您还没有任何应用,请先“创建应用”,创建应用成功后,平台会自动分配应用唯一标识APP ID。 .. image:: _static/7.8.1.png 图7.5 开发者平台 在详情页面底部找到并点击“平台服务配置 – 成就”。 .. image:: _static/7.8.2.png 图7.6 开发者平台 在成就页面可以看到您已创建的所有成就。如果您还没有任何成就,请点击“创建”。 .. image:: _static/7.8.3.png 图7.7 开发者平台 按要求填写成就的信息。填入的API 名称必须代码中的保持一致。 - 5. 成就类型 (1). 简单类型:通过单个事件或目标完成来解锁,无成就进展 (2). 计数器类型:到达指定目标个数时解锁(e.g. 完成5个解锁,target=5) (3). 位域类型:到达指定范围的指定目标个数时解锁(e.g. 完成指定7个目标中的3个解锁,Target=3,Bitfield Length=7) - 6. 配置APPID (1). 在工程Platform Settings和Manifest.xml中配置有效APP ID: .. image:: _static/7.8.4.png 图7.8 Platform Settings面板 (2)AndroidManifest配置详情参考9.1.1,9.1.2支付章节 7.9.2 接口调用 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Init ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static PXR_Request Init() 功能:成就系统初始化 参数:无 返回值:接口调用结果 调用方式: PXR_Achievement.Init() GetAllDefinitions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static PXR_Request GetAllDefinitions() 功能:获取所有成就定义信息 参数:无 返回值:接口调用结果 调用方式: PXR_Achievement. GetAllDefinitions () GetAllProgress ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static PXR_Request GetAllProgress() 功能:获取所有已修改成就进度信息 参数:无 返回值:接口调用结果 调用方式: PXR_Achievement. GetAllProgress () GetDefinitionsByName ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static PXR_Request GetDefinitionsByName(string[] names) 功能:根据name获取成就定义信息 参数:names:要获取定义信息的成就apiname数组 返回值:接口调用结果 调用方式: PXR_Achievement. GetDefinitionsByName (names) GetProgressByName ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static PXR_Request GetProgressByName(string[] names) 功能:根据name获取成就进度信息 参数:names:要获取定义信息的成就apiname数组 返回值:接口调用结果 调用方式: PXR_Achievement. GetProgressByName (names) AddCount ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static PXR_Request AddCount(string name, long count) 功能:count类型成就增加 参数:name:成就apiname,count:增加数 返回值:接口调用结果 调用方式: PXR_Achievement. AddCount (name, count) AddFields ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static PXR_Request AddFields(string name, string fields) 功能:bitfield类型成就增加 参数:name:成就apiname,fields:增加数 返回值:接口调用结果 调用方式: PXR_Achievement. AddFields (name, bitfield) Unlock ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static PXR_Request Unlock(string name) 功能:根据apiname解锁成就 参数:name:成就apiname 返回值:接口调用结果 调用方式: PXR_Achievement. Unlock (name) GetNextAchievementDefinitionListPage ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static PXR_Request GetNextAchievementDefinitionListPage(PXR_AchievementDefinitionList list) 功能:获取所有成就定义信息时,若存在多页,获取下一页 参数:无 返回值:接口调用结果 调用方式: PXR_Achievement. GetNextAchievementDefinitionListPage(achievementDefinitionList) GetNextAchievementProgressListPage ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数名:public static PXR_Request GetNextAchievementProgressListPage(PXR_AchievementProgressList list) 功能:获取所有已修改成就进度信息时,若存在多页,获取下一页 参数:无 返回值:接口调用结果 调用方式: PXR_Achievement. GetNextAchievementProgressListPage(achievementProgressList) 7.9.3 使用注意事项 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (1). 请先使用Pico账号登陆设备,再使用成就接口和功能 (2). 为了避免由于设备账号切换、退登导致的成就数据出现误差,请在应用Resume()中重新调用一次初始化,以确保应用获取正确的用户登陆信息。 (3). 开发调试阶段可以通过以下方式调试和测试 a. Logcat b. 通过开发者平台-应用-成就信息页查看数据