123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- using Android.App;
- using Android.OS;
- using System;
- using System.Security.Cryptography;
- using System.Text;
- using Vinno.vCloud.FIS.CrossPlatform.Common;
- namespace Vinno.vCloud.FIS.CrossPlatform.Android.Hardware
- {
- public class MobileInfo
- {
- public static string Board { get; private set; }
- public static string Brand { get; private set; }
- public static string CpuAbi { get; private set; }
- public static string Device { get; private set; }
- public static string Display { get; private set; }
- public static string Hardware { get; private set; }
- public static string Host { get; private set; }
- public static string Id { get; private set; }
- public static string Manufacturer { get; private set; }
- public static string Model { get; private set; }
- public static string Product { get; private set; }
- public static string Tags { get; private set; }
- public static string MobileType { get; private set; }
- public static string User { get; private set; }
- public static string AndroidId { get; private set; }
- public static string MachineId { get; private set; }
- public static void Initialize()
- {
- GetBoard();
- GetBrand();
- GetCpuAbi();
- GetDevice();
- GetDisplay();
- GetHardware();
- GetHost();
- GetId();
- GetManufacturer();
- GetModel();
- GetProduct();
- GetTags();
- GetMobileType();
- GetUser();
- GetAndroidId();
- GetMachineId();
- }
- private static void GetBoard()
- {
- try
- {
- Board = Build.Board.ToString();
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetBoard Error:{ex}");
- Board = "Unknown";
- }
- }
- private static void GetBrand()
- {
- try
- {
- Brand = Build.Brand.ToString();
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetBrand Error:{ex}");
- Brand = "Unknown";
- }
- }
- private static void GetCpuAbi()
- {
- try
- {
- CpuAbi = Build.CpuAbi.ToString();
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetCpuAbi Error:{ex}");
- CpuAbi = "Unknown";
- }
- }
- private static void GetDevice()
- {
- try
- {
- Device = Build.Device.ToString();
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetDevice Error:{ex}");
- Device = "Unknown";
- }
- }
- private static void GetDisplay()
- {
- try
- {
- Display = Build.Display.ToString();
- CrossPlatformHelper.Instance.LogWriter?.WriteLineInfo($"MobileInfo GetDisplay:{Display}");
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetDisplay Error:{ex}");
- Display = "Unknown";
- }
- }
- private static void GetHardware()
- {
- try
- {
- Hardware = Build.Hardware.ToString();
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetHardware Error:{ex}");
- Hardware = "Unknown";
- }
- }
- private static void GetHost()
- {
- try
- {
- Host = Build.Host.ToString();
- CrossPlatformHelper.Instance.LogWriter?.WriteLineInfo($"MobileInfo GetHost:{Host}");
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetHost Error:{ex}");
- Host = "Unknown";
- }
- }
- private static void GetId()
- {
- try
- {
- Id = Build.Id.ToString();
- CrossPlatformHelper.Instance.LogWriter?.WriteLineInfo($"MobileInfo GetId:{Id}");
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetId Error:{ex}");
- Id = "Unknown";
- }
- }
- private static void GetManufacturer()
- {
- try
- {
- Manufacturer = Build.Manufacturer.ToString();
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetManufacturer Error:{ex}");
- Manufacturer = "Unknown";
- }
- }
- private static void GetModel()
- {
- try
- {
- Model = Build.Model.ToString();
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetModel Error:{ex}");
- Model = "Unknown";
- }
- }
- private static void GetProduct()
- {
- try
- {
- Product = Build.Product.ToString();
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetProduct Error:{ex}");
- Product = "Unknown";
- }
- }
- private static void GetTags()
- {
- try
- {
- Tags = Build.Tags.ToString();
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetTags Error:{ex}");
- Tags = "Unknown";
- }
- }
- private static void GetMobileType()
- {
- try
- {
- MobileType = Build.Type.ToString();
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetMobileType Error:{ex}");
- MobileType = "Unknown";
- }
- }
- private static void GetUser()
- {
- try
- {
- User = Build.User.ToString();
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetUser Error:{ex}");
- User = "Unknown";
- }
- }
- private static void GetAndroidId()
- {
- try
- {
- AndroidId = global::Android.Provider.Settings.Secure.GetString(Application.Context.ContentResolver, global::Android.Provider.Settings.Secure.AndroidId);
- CrossPlatformHelper.Instance.LogWriter?.WriteLineInfo($"MobileInfo AndroidId :{AndroidId}");
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo GetAndroidId Error:{ex}");
- AndroidId = "Unknown";
- }
- }
- private static void GetMachineId()
- {
- try
- {
- var hardwareString = $"{Board}_{Brand}_{CpuAbi}_{Device}_{Hardware}_{Manufacturer}_{Model}_{Product}_{Tags}_{MobileType}_{User}";
- CrossPlatformHelper.Instance.LogWriter?.WriteLineInfo($"MobileInfo HardwareInfo :{hardwareString}");
- MachineId = $"{GetMd5Hash(hardwareString)}_{AndroidId.ToUpper()}_A";
- CrossPlatformHelper.Instance.LogWriter?.WriteLineInfo($"MobileInfo MachineId :{MachineId}");
- }
- catch (Exception ex)
- {
- CrossPlatformHelper.Instance.LogWriter?.WriteLineError($"MobileInfo MachineId Error:{ex}");
- MachineId = "Unknown_Android_Machine_Id";
- }
- }
- private static string GetMd5Hash(string input)
- {
- using (MD5 md5Hash = MD5.Create())
- {
- byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
- StringBuilder builder = new StringBuilder();
- for (int i = 0; i < data.Length; i++)
- {
- builder.Append(data[i].ToString("x2"));
- }
- return builder.ToString().ToUpper();
- }
- }
- }
- }
|