123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- using OpenCVForUnity.CoreModule;
- using OpenCVForUnity.UnityUtils;
- using System;
- using System.Collections.Generic;
- using System.Reflection;
- using System.Text;
- using UnityEngine;
- using UnityEngine.SceneManagement;
- using UnityEngine.UI;
- namespace OpenCVForUnityExample
- {
- public class ShowSystemInfo : MonoBehaviour
- {
- public Text systemInfoText;
- public InputField systemInfoInputField;
- private const string ASSET_NAME = "OpenCVForUnity";
- // Use this for initialization
- void Start()
- {
- StringBuilder sb = new StringBuilder();
- sb.Append("###### Build Info ######\n");
- IDictionary<string, string> buildInfo = GetBuildInfo();
- foreach (string key in buildInfo.Keys)
- {
- sb.Append(key).Append(" = ").Append(buildInfo[key]).Append("\n");
- }
- sb.Append("\n");
- #if UNITY_IOS || (UNITY_ANDROID && UNITY_2018_3_OR_NEWER)
- sb.Append("###### Device Info ######\n");
- IDictionary<string, string> deviceInfo = GetDeviceInfo();
- foreach (string key in deviceInfo.Keys)
- {
- sb.Append(key).Append(" = ").Append(deviceInfo[key]).Append("\n");
- }
- sb.Append("\n");
- #endif
- sb.Append("###### System Info ######\n");
- IDictionary<string, string> systemInfo = GetSystemInfo();
- foreach (string key in systemInfo.Keys)
- {
- sb.Append(key).Append(" = ").Append(systemInfo[key]).Append("\n");
- }
- sb.Append("#########################\n");
- systemInfoText.text = systemInfoInputField.text = sb.ToString();
- Debug.Log(sb.ToString());
- }
- // Update is called once per frame
- void Update()
- {
- }
- public Dictionary<string, string> GetBuildInfo()
- {
- Dictionary<string, string> dict = new Dictionary<string, string>();
- dict.Add(ASSET_NAME + " version", Core.NATIVE_LIBRARY_NAME + " " + Utils.getVersion() + " (" + Core.VERSION + ")");
- dict.Add("Build Unity version", Application.unityVersion);
- #if UNITY_EDITOR
- dict.Add("Build target", "Editor");
- #elif UNITY_STANDALONE_WIN
- dict.Add("Build target", "Windows");
- #elif UNITY_STANDALONE_OSX
- dict.Add("Build target", "Mac OSX");
- #elif UNITY_STANDALONE_LINUX
- dict.Add("Build target", "Linux");
- #elif UNITY_ANDROID
- dict.Add("Build target", "Android");
- #elif UNITY_IOS
- dict.Add("Build target", "iOS");
- #elif UNITY_WSA
- dict.Add("Build target", "WSA");
- #elif UNITY_WEBGL
- dict.Add("Build target", "WebGL");
- #else
- dict.Add("Build target", "");
- #endif
- #if ENABLE_MONO
- dict.Add("Scripting backend", "Mono");
- #elif ENABLE_IL2CPP
- dict.Add("Scripting backend", "IL2CPP");
- #elif ENABLE_DOTNET
- dict.Add("Scripting backend", ".NET");
- #else
- dict.Add("Scripting backend", "");
- #endif
- #if OPENCV_USE_UNSAFE_CODE
- dict.Add("Allow 'unsafe' Code", "Enabled");
- #else
- dict.Add("Allow 'unsafe' Code", "Disabled");
- #endif
- return dict;
- }
- public Dictionary<string, string> GetDeviceInfo()
- {
- Dictionary<string, string> dict = new Dictionary<string, string>();
- #if UNITY_IOS
- dict.Add("iOS.Device.generation", UnityEngine.iOS.Device.generation.ToString());
- dict.Add("iOS.Device.systemVersion", UnityEngine.iOS.Device.systemVersion.ToString());
- #endif
- #if UNITY_IOS && UNITY_2018_1_OR_NEWER
- dict.Add("UserAuthorization.WebCam", Application.HasUserAuthorization(UserAuthorization.WebCam).ToString());
- dict.Add("UserAuthorization.Microphone", Application.HasUserAuthorization(UserAuthorization.Microphone).ToString());
- #endif
- #if UNITY_ANDROID && UNITY_2018_3_OR_NEWER
- dict.Add("Android.Permission.Camera", UnityEngine.Android.Permission.HasUserAuthorizedPermission(UnityEngine.Android.Permission.Camera).ToString());
- dict.Add("Android.Permission.CoarseLocation", UnityEngine.Android.Permission.HasUserAuthorizedPermission(UnityEngine.Android.Permission.CoarseLocation).ToString());
- dict.Add("Android.Permission.ExternalStorageRead", UnityEngine.Android.Permission.HasUserAuthorizedPermission(UnityEngine.Android.Permission.ExternalStorageRead).ToString());
- dict.Add("Android.Permission.ExternalStorageWrite", UnityEngine.Android.Permission.HasUserAuthorizedPermission(UnityEngine.Android.Permission.ExternalStorageWrite).ToString());
- dict.Add("Android.Permission.FineLocation", UnityEngine.Android.Permission.HasUserAuthorizedPermission(UnityEngine.Android.Permission.FineLocation).ToString());
- dict.Add("Android.Permission.Microphone", UnityEngine.Android.Permission.HasUserAuthorizedPermission(UnityEngine.Android.Permission.Microphone).ToString());
- #endif
- return dict;
- }
- /// SystemInfo Class Propertys
- public SortedDictionary<string, string> GetSystemInfo()
- {
- SortedDictionary<string, string> dict = new SortedDictionary<string, string>();
- Type type = typeof(SystemInfo);
- MemberInfo[] members = type.GetMembers(
- BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static);
- foreach (MemberInfo mb in members)
- {
- try
- {
- if (mb.MemberType == MemberTypes.Property)
- {
- if (mb.Name == "deviceUniqueIdentifier")
- {
- dict.Add(mb.Name, "xxxxxxxxxxxxxxxxxxxxxxxx");
- continue;
- }
- PropertyInfo pr = type.GetProperty(mb.Name);
- if (pr != null)
- {
- object resobj = pr.GetValue(type, null);
- dict.Add(mb.Name, resobj.ToString());
- }
- else
- {
- dict.Add(mb.Name, "");
- }
- }
- }
- catch (Exception e)
- {
- Debug.Log("Exception: " + e);
- }
- }
- return dict;
- }
- public void OnBackButtonClick()
- {
- SceneManager.LoadScene("OpenCVForUnityExample");
- }
- }
- }
|