当前位置:   article > 正文

Unity安卓生成设备唯一id_unity安卓生成设备唯一uuid

unity安卓生成设备唯一uuid

目标:生成唯一id,重启后生成仍旧相同。
其实可以使用GAID等来源于其他SDK的唯一id,但是为了一个UUID而接入一些SDK,好像也不太对
这里参考网上一些内容,通过设备相关信息,生成UUID。作为唯一id

相关代码和aar已经打包成一份package了:代码+样例下载

android的代码:

    public String GetSerial()
    {
        String serial = "";
        try {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                serial = Build.getSerial();
            } else {
                serial = Build.SERIAL;
            }
            return serial;
        } catch (Exception exception) {
            //serial需要一个初始化
            serial = "serial"; // 随便一个初始化
            return serial;
        }
    }
    
 public String GetUUIDCustom(String serial){
        String m_szDevIDShort = "35" +
                Build.BOARD.length()%10+ Build.BRAND.length()%10 +

                Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 +

                Build.DISPLAY.length()%10 + Build.HOST.length()%10 +

                Build.ID.length()%10 + Build.MANUFACTURER.length()%10 +

                Build.MODEL.length()%10 + Build.PRODUCT.length()%10 +

                Build.TAGS.length()%10 + Build.TYPE.length()%10 +

                Build.USER.length()%10 ; //13 位
        return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

Unity的代码:

	/// <summary>
	/// 根据设备信息生成一个UUID,如果能拿到serial就用serial生成,如果没拿到那就用deviceUniqueIdentifier生成
	/// </summary>
	/// <returns></returns>
	static public string DeviceUUID()
	{

#if UNITY_ANDROID
		if (instance == null)
		{
			instance = new UUIDHelper();
			instance.Init();
		}
		if(serial == "serial")
		{
			string unity_devid = UnityDeviceId();
			return CustomUUID(unity_devid);
		}
		string uuid = instance.java_obj.Call<string>("GetUUID");
		uuid = uuid.Replace("-", "");
		return uuid;
#else
		return SystemInfo.deviceUniqueIdentifier;
#endif
	}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/115318
推荐阅读
相关标签
  

闽ICP备14008679号