230 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			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 "";
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 |