UnityPicoXRSDK获取设备SN号,加密,读取文本功能(PicoVRSDK弃用)(使用PICO Unity Integration SDK)),Pvr升级XR注意事项

您所在的位置:网站首页 机器sn码 UnityPicoXRSDK获取设备SN号,加密,读取文本功能(PicoVRSDK弃用)(使用PICO Unity Integration SDK)),Pvr升级XR注意事项

UnityPicoXRSDK获取设备SN号,加密,读取文本功能(PicoVRSDK弃用)(使用PICO Unity Integration SDK)),Pvr升级XR注意事项

2024-07-11 16:07| 来源: 网络整理| 查看: 265

由于Pico老版本VRSDK不支持新设备(其实是支持到了Neo3/Neo3Pro,虽然Pvr_UnitySDKAPI仍然可以用,但对于获取设备SN号,加密和读取文本等使用Pvr_UnitySDKAPI的功能已经失效),全面更新为UnityXR,故重新写了一套Android端的设备加密读取SN号解密功能。

请注意,由于Unity2021.2已经不允许直接把res文件放在Plugins/Android目录下,有一种说法是全面使用aar,故对于老版本PvrAPI开发的项目升级XRSDK来说最好还是使用Unity2020.3.21-2021.2之间的版本。另外,Pico官方给的SDK需要外部加载。 Pico官方最低版本2020.3.21(Unity官方XR包是在2019.4之后才有) 对老项目升级XR来说是个麻烦事

获取SN号(本项目使用的版本为Unity2020.3.32)

与以前的Pvr不同的是目前需要绑定设备

PXR_Enterprise.InitEnterpriseService(); PXR_Enterprise.BindEnterpriseService(toBServiceBind);

获取代码:

return PXR_Enterprise.StateGetDeviceInfo(SystemInfoEnum.EQUIPMENT_SN);

adb.devices可以PC获取设备SN,但是下面这种方式不行了: 源生安卓代码调用设备SN号无法获取!(Neo3之后的设备,G2和Neo2仍然可以)

AndroidJavaObject jo = new AndroidJavaObject("android.os.Build"); string serial = jo.GetStatic("SERIAL"); 加密解密 public static class EncryptDecrypt { //加解密密钥,字符串长度必须为8(自定义) public static string key = "11111111"; //加密 public static string DESEnCode(string pToEncrypt) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = Encoding.GetEncoding("UTF-8").GetBytes(pToEncrypt); try { des.Key = ASCIIEncoding.ASCII.GetBytes(key); des.IV = ASCIIEncoding.ASCII.GetBytes(key); } catch (Exception) { UnityEngine.Debug.Log("加密时密钥格式错误!"); return null; } MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); try { cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); } catch (Exception) { UnityEngine.Debug.Log("加密错误!"); return null; } StringBuilder ret = new StringBuilder(); foreach (byte b in ms.ToArray()) { ret.AppendFormat("{0:X2}", b); } ret.ToString(); return ret.ToString(); } //解密 public static string DESDeCode(string pToDecrypt) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = new byte[pToDecrypt.Length / 2]; for (int x = 0; x

github地址:https://github.com/007HaHaXiaoZi/PicoXRSDK



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3