7 API接口函数一览

7.2 手柄相关

_images/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 注视点渲染相关

_images/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 安全区防护边界相关

_images/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 测试结果结构体

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

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)

参数:

    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 普通接口

_images/7.7.1.png

图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();

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

{
   "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。申请流程如下:

开发者分为个人开发者和企业开发者,请根据实际情况进行申请。审核提交后,我们会在3个工作日内进行反馈,请及时查看开发者平台状态。

    1. 查看商户ID
    1. 创建成就信息

点击“查看”进入应用详情页。如果您还没有任何应用,请先“创建应用”,创建应用成功后,平台会自动分配应用唯一标识APP ID。

_images/7.8.1.png

图7.5 开发者平台

在详情页面底部找到并点击“平台服务配置 – 成就”。

_images/7.8.2.png

图7.6 开发者平台

在成就页面可以看到您已创建的所有成就。如果您还没有任何成就,请点击“创建”。

_images/7.8.3.png

图7.7 开发者平台

按要求填写成就的信息。填入的API 名称必须代码中的保持一致。

    1. 成就类型

    (1). 简单类型:通过单个事件或目标完成来解锁,无成就进展

    (2). 计数器类型:到达指定目标个数时解锁(e.g. 完成5个解锁,target=5)

    (3). 位域类型:到达指定范围的指定目标个数时解锁(e.g. 完成指定7个目标中的3个解锁,Target=3,Bitfield Length=7)

    1. 配置APPID

(1). 在工程Platform Settings和Manifest.xml中配置有效APP ID:

_images/7.8.4.png

图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). 开发调试阶段可以通过以下方式调试和测试

  1. Logcat
  2. 通过开发者平台-应用-成就信息页查看数据