29 lines
769 B
C#
29 lines
769 B
C#
|
|
using System;
|
||
|
|
using RudderSdk.Core.Abstractions;
|
||
|
|
|
||
|
|
namespace RudderSdk.Unity
|
||
|
|
{
|
||
|
|
internal class UnityDeviceIdProvider : IDeviceIdProvider
|
||
|
|
{
|
||
|
|
public string DeviceId => SystemInfoHelper.GetDeviceId();
|
||
|
|
}
|
||
|
|
|
||
|
|
internal static class SystemInfoHelper
|
||
|
|
{
|
||
|
|
private static string _cachedDeviceId;
|
||
|
|
|
||
|
|
public static string GetDeviceId()
|
||
|
|
{
|
||
|
|
if (_cachedDeviceId != null) return _cachedDeviceId;
|
||
|
|
_cachedDeviceId = UnityEngine.PlayerPrefs.GetString("rudder_device_id", null);
|
||
|
|
if (string.IsNullOrEmpty(_cachedDeviceId))
|
||
|
|
{
|
||
|
|
_cachedDeviceId = Guid.NewGuid().ToString("N");
|
||
|
|
UnityEngine.PlayerPrefs.SetString("rudder_device_id", _cachedDeviceId);
|
||
|
|
UnityEngine.PlayerPrefs.Save();
|
||
|
|
}
|
||
|
|
return _cachedDeviceId;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|