From ef547caba988d5bd0c5782e7ad2384526cfcb0fd Mon Sep 17 00:00:00 2001 From: huyufei Date: Fri, 26 Jul 2024 11:40:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=20NetworkStatus?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --story=1021014 --user=yufei.hu 【中台】【SDK】用户属性上报添加 Network 属性 https://www.tapd.cn/33527076/s/1159774 Signed-off-by: huyufei --- .../Runtime/NetworkStatusMonitor.cs | 9 +++++- .../Runtime/Proxy/NetworkStatusAndroid.cs | 13 ++++---- .../Runtime/Proxy/NetworkStatusEditor.cs | 4 +-- .../Runtime/Proxy/NetworkStatusIOS.cs | 31 +++++++++++-------- 4 files changed, 34 insertions(+), 23 deletions(-) diff --git a/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs b/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs index f596716..dc67d0b 100644 --- a/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs +++ b/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs @@ -33,8 +33,14 @@ namespace Guru.Network #elif UNITY_IOS _proxy = new NetworkStatusIOS(); #endif + } + + if (_proxy == null) + { + // 如果未实现则报异常 throw new NotImplementedException("Can't find NetworkStatusProxy instance!!"); } + return _proxy; } @@ -79,12 +85,13 @@ namespace Guru.Network statusName = _statusNameList[i]; if (status.Contains(statusName)) { + Debug.Log($"{Tag} --- GetNetworkStatus : {statusName}"); return statusName; } } } } - + Debug.LogWarning($"{Tag} --- Network Monitor is not ready!"); return NETWORK_STATUS_NONE; } diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs index 060c991..080e0bd 100644 --- a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs @@ -7,7 +7,7 @@ namespace Guru.Network public class NetworkStatusAndroid: INetworkStatusProxy { - private const string Tag = "[NET]"; + private const string Tag = "[NET][AND]"; #if UNITY_ANDROID private const string CONNECTIVITY_ANDROID_CLASS_NAME = "com.guru.unity.monitor.Connectivity"; private AndroidJavaObject _connectivity; @@ -26,9 +26,8 @@ namespace Guru.Network AndroidJavaObject currentActivity = new AndroidJavaObject("com.unity3d.player.UnityPlayer").GetStatic("currentActivity"); _connectivity = new AndroidJavaObject(CONNECTIVITY_ANDROID_CLASS_NAME).CallStatic("getInstance"); _isReady = _connectivity.Call("initialize", currentActivity); - - Debug.LogWarning($"{Tag} --- Network status init result:{_isReady}"); - Debug.LogWarning($"{Tag} --- _connectivity:{_connectivity}"); + // Debug.LogWarning($"{Tag} --- Network status init result:{_isReady}"); + // Debug.LogWarning($"{Tag} --- _connectivity:{_connectivity}"); onInitComplete?.Invoke(_isReady); // 调用初始化回调 #endif } @@ -40,11 +39,11 @@ namespace Guru.Network public string[] GetNetworkStatus() { #if UNITY_ANDROID - if (_connectivity == null) + if (!_isReady) { - Debug.LogError($"{Tag} --- GetNetworkStatus :: _connectivity is Null!!"); + Debug.LogError($"{Tag} --- GetNetworkStatus :: initialized failed."); } - else + else if(_connectivity != null) { return _connectivity.Call("checkConnectionType"); } diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs index b3436a3..3d3e055 100644 --- a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs @@ -10,7 +10,7 @@ namespace Guru.Network public class NetworkStatusEditor:INetworkStatusProxy { - + private const string Tag = "[NET][EDT]"; /// /// 初始化 /// @@ -18,7 +18,7 @@ namespace Guru.Network public async void Init(Action onInitComplete) { await Task.Delay(300); - Debug.Log($"[NET][EDT] --- init NetworkStatusEditor success int Editor"); + Debug.Log($"{Tag} --- init NetworkStatusEditor success int Editor"); onInitComplete?.Invoke(true); } diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs index 7ed7475..71b9301 100644 --- a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs @@ -5,11 +5,11 @@ namespace Guru.Network using System; using System.Runtime.InteropServices; using AOT; - + using UnityEngine; public class NetworkStatusIOS:INetworkStatusProxy { - + public const string Tag = "[NET][iOS]"; #if UNITY_IOS [DllImport("__Internal")] private static extern IntPtr checkNetworkConnection(); @@ -28,15 +28,13 @@ namespace Guru.Network [MonoPInvokeCallback(typeof(InitializationCallback))] private static void OnInitializationComplete(bool success) { + _isReady = success; _initCompleteCallback?.Invoke(success); } -#endif - - -#if UNITY_IOS - -#endif - +#endif + + + private static bool _isReady = false; public void Init(Action onInitComplete) { @@ -49,10 +47,17 @@ namespace Guru.Network public string[] GetNetworkStatus() { #if UNITY_IOS - IntPtr ptr = checkNetworkConnection(); - string result = Marshal.PtrToStringAnsi(ptr); - freeCheckNetworkConnectionResult(ptr); - return result.Split(','); + if(!_isReady) + { + Debug.LogError($"{Tag} --- GetNetworkStatus :: initialized failed."); + } + else + { + IntPtr ptr = checkNetworkConnection(); + string result = Marshal.PtrToStringAnsi(ptr); + freeCheckNetworkConnectionResult(ptr); + return result.Split(','); + } #endif return new string[] {"none"}; }