DeviceSN.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using QFramework;
  2. using System;
  3. using UnityEngine;
  4. public class DeviceSN : MonoSingleton<DeviceSN>
  5. {
  6. private string serial;
  7. /// <summary>
  8. /// 获取设备ID的后十位数字,在Unity中时为预设的设备ID
  9. /// </summary>
  10. /// <returns></returns>
  11. public long SendSerial()
  12. {
  13. AndroidJavaObject jo = new AndroidJavaObject("android.os.Build");
  14. serial = jo.GetStatic<string>("SERIAL");
  15. return SubStringDefault(serial);
  16. }
  17. public string SendSerialBy16()
  18. {
  19. //Debug.Log(Convert.ToString(DeviceSN.GetInstance().SendSerial(), 16));
  20. //return Convert.ToString(DeviceSN.GetInstance().SendSerial(), 16);
  21. #if UNITY_EDITOR
  22. return "ABD123456";
  23. #elif UNITY_ANDROID
  24. // return Convert.ToString(DeviceSN.Instance.SendSerial(), 16);
  25. string str = SystemInfo.deviceUniqueIdentifier;
  26. if (str.Length > 11)
  27. str = str.Substring(0, 10);
  28. return str;
  29. // return SystemInfo.deviceUniqueIdentifier;
  30. #endif
  31. }
  32. /// <summary>
  33. /// 获取从后往前数length位的string
  34. /// </summary>
  35. /// <param name="str">需要获取的源字符串</param>
  36. /// <param name="index">从第多少位开始往前数</param>
  37. /// <param name="length">往前数多少位</param>
  38. /// <returns></returns>
  39. public string SubStringByEnd(string str, int index, int length)
  40. {
  41. return str.Substring((index - length) < 0 ? 0 : (index - length), length);
  42. }
  43. /// <summary>
  44. /// 获取从最后一位开始往前数10位的数字
  45. /// </summary>
  46. /// <param name="str">输入源字符串</param>
  47. /// <returns></returns>
  48. public long SubStringDefault(string str)
  49. {
  50. bool r = long.TryParse(SubStringByEnd(str, str.Length, 10),out long result);
  51. if (!r)
  52. {
  53. Debug.LogError($"获取TagID失败 : {result}");
  54. }
  55. return result;
  56. }
  57. }