using SC.XR.Unity.Module_Device; using System; using UnityEngine; public class DeviceSN : Singleton { private string serial; /// /// 获取设备ID的后十位数字,在Unity中时为预设的设备ID /// /// public long SendSerial() { AndroidJavaObject jo = new AndroidJavaObject("android.os.Build"); serial = jo.GetStatic("SERIAL"); return SubStringDefault(serial); } public string SendSerialBy16() { //Debug.Log(Convert.ToString(DeviceSN.GetInstance().SendSerial(), 16)); //return Convert.ToString(DeviceSN.GetInstance().SendSerial(), 16); #if UNITY_EDITOR return "ABD1234561"; #elif UNITY_ANDROID return Convert.ToString(DeviceSN.Instance.SendSerial(), 16); #endif } /// /// 获取从后往前数length位的string /// /// 需要获取的源字符串 /// 从第多少位开始往前数 /// 往前数多少位 /// public string SubStringByEnd(string str, int index, int length) { return str.Substring((index - length) < 0 ? 0 : (index - length), length); } /// /// 获取从最后一位开始往前数10位的数字 /// /// 输入源字符串 /// public long SubStringDefault(string str) { bool r = long.TryParse(SubStringByEnd(str, str.Length, 10), out long result); if (!r) { Debug.LogError($"获取TagID失败 : {result}"); } return result; } public string GetSn() { #if UNITY_EDITOR return "ABD1234561"; #elif UNITY_ANDROID AndroidJavaObject jo = new AndroidJavaObject("android.os.Build"); serial = jo.GetStatic("SERIAL"); return serial; #endif return Module_Device.getInstance.Current.SN; } }