SDK_UnityMoney/Assets/Plugins/PC/Utils/ThinkingSDKDeviceInfo.cs

230 lines
7.8 KiB
C#

using System;
using ThinkingSDK.PC.Constant;
using ThinkingSDK.PC.Storage;
using UnityEngine;
namespace ThinkingSDK.PC.Utils
{
public class ThinkingSDKDeviceInfo
{
// devide ID
public static string DeviceID()
{
if (ThinkingSDKUtil.DisPresetProperties.Contains(ThinkingSDKConstant.DEVICE_ID))
{
return "";
}
#if (UNITY_WEBGL)
return RandomDeviceID();
#else
return SystemInfo.deviceUniqueIdentifier;
#endif
}
// A persistent random number, used as an alternative to the device ID (WebGL cannot obtain the device ID)
private static string RandomDeviceID()
{
string randomID = (string)ThinkingSDKFile.GetData(ThinkingSDKConstant.RANDOM_DEVICE_ID, typeof(string));
if (string.IsNullOrEmpty(randomID))
{
randomID = System.Guid.NewGuid().ToString("N");
ThinkingSDKFile.SaveData(ThinkingSDKConstant.RANDOM_DEVICE_ID, randomID);
}
return randomID;
}
// network type
public static string NetworkType()
{
if (ThinkingSDKUtil.DisPresetProperties.Contains(ThinkingSDKConstant.NETWORK_TYPE))
{
return "";
}
string networkType = "NULL";
if (Application.internetReachability == NetworkReachability.ReachableViaCarrierDataNetwork)
{
networkType = "Mobile";
}
else if (Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork)
{
networkType = "LAN";
}
return networkType;
}
// carrier name
public static string Carrier()
{
if (ThinkingSDKUtil.DisPresetProperties.Contains(ThinkingSDKConstant.CARRIER))
{
return "";
}
return "NULL";
}
// os name
public static string OS()
{
if (ThinkingSDKUtil.DisPresetProperties.Contains(ThinkingSDKConstant.OS))
{
return "";
}
string os = "other";
if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.Linux)
{
os = "Linux";
}
else if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX)
{
os = "MacOSX";
}
else if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.Windows)
{
os = "Windows";
}
return os;
}
// os version
public static string OSVersion()
{
if (ThinkingSDKUtil.DisPresetProperties.Contains(ThinkingSDKConstant.OS_VERSION))
{
return "";
}
return SystemInfo.operatingSystem;
}
// device screen width
public static int ScreenWidth()
{
if (ThinkingSDKUtil.DisPresetProperties.Contains(ThinkingSDKConstant.SCREEN_WIDTH))
{
return 0;
}
return (int)(UnityEngine.Screen.currentResolution.width);
}
// device screen height
public static int ScreenHeight()
{
if (ThinkingSDKUtil.DisPresetProperties.Contains(ThinkingSDKConstant.SCREEN_HEIGHT))
{
return 0;
}
return (int)(UnityEngine.Screen.currentResolution.height);
}
// graphics card manufacturer name
public static string Manufacture()
{
if (ThinkingSDKUtil.DisPresetProperties.Contains(ThinkingSDKConstant.MANUFACTURE))
{
return "";
}
return SystemInfo.graphicsDeviceVendor;
}
// devide model
public static string DeviceModel()
{
if (ThinkingSDKUtil.DisPresetProperties.Contains(ThinkingSDKConstant.DEVICE_MODEL))
{
return "";
}
return SystemInfo.deviceModel;
}
// device language
public static string MachineLanguage()
{
if (ThinkingSDKUtil.DisPresetProperties.Contains(ThinkingSDKConstant.SYSTEM_LANGUAGE))
{
return "";
}
switch (Application.systemLanguage)
{
case SystemLanguage.Afrikaans:
return "af";
case SystemLanguage.Arabic:
return "ar";
case SystemLanguage.Basque:
return "eu";
case SystemLanguage.Belarusian:
return "be";
case SystemLanguage.Bulgarian:
return "bg";
case SystemLanguage.Catalan:
return "ca";
case SystemLanguage.Chinese:
return "zh";
case SystemLanguage.Czech:
return "cs";
case SystemLanguage.Danish:
return "da";
case SystemLanguage.Dutch:
return "nl";
case SystemLanguage.English:
return "en";
case SystemLanguage.Estonian:
return "et";
case SystemLanguage.Faroese:
return "fo";
case SystemLanguage.Finnish:
return "fu";
case SystemLanguage.French:
return "fr";
case SystemLanguage.German:
return "de";
case SystemLanguage.Greek:
return "el";
case SystemLanguage.Hebrew:
return "he";
case SystemLanguage.Icelandic:
return "is";
case SystemLanguage.Indonesian:
return "id";
case SystemLanguage.Italian:
return "it";
case SystemLanguage.Japanese:
return "ja";
case SystemLanguage.Korean:
return "ko";
case SystemLanguage.Latvian:
return "lv";
case SystemLanguage.Lithuanian:
return "lt";
case SystemLanguage.Norwegian:
return "nn";
case SystemLanguage.Polish:
return "pl";
case SystemLanguage.Portuguese:
return "pt";
case SystemLanguage.Romanian:
return "ro";
case SystemLanguage.Russian:
return "ru";
case SystemLanguage.SerboCroatian:
return "sr";
case SystemLanguage.Slovak:
return "sk";
case SystemLanguage.Slovenian:
return "sl";
case SystemLanguage.Spanish:
return "es";
case SystemLanguage.Swedish:
return "sv";
case SystemLanguage.Thai:
return "th";
case SystemLanguage.Turkish:
return "tr";
case SystemLanguage.Ukrainian:
return "uk";
case SystemLanguage.Vietnamese:
return "vi";
case SystemLanguage.ChineseSimplified:
return "zh";
case SystemLanguage.ChineseTraditional:
return "zh";
case SystemLanguage.Hungarian:
return "hu";
case SystemLanguage.Unknown:
return "unknown";
};
return "";
}
}
}