From 345b4ac9717d4015d743592517bcffab83fa30ea Mon Sep 17 00:00:00 2001 From: huyufei Date: Fri, 26 Jul 2024 11:08:18 +0800 Subject: [PATCH] =?UTF-8?q?update=EF=BC=9A=20=E7=94=A8=E6=88=B7=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E4=B8=8A=E6=8A=A5=E6=B7=BB=E5=8A=A0=20Network=20?= =?UTF-8?q?=E5=B1=9E=E6=80=A7?= 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/1159710 Signed-off-by: huyufei --- Runtime/GuruNetworkMonitor.meta | 8 + Runtime/GuruNetworkMonitor/Plugins.meta | 8 + .../GuruNetworkMonitor/Plugins/Android.meta | 8 + .../Plugins/Android/connectivity-1.0.0.aar | Bin 0 -> 5218 bytes .../Android/connectivity-1.0.0.aar.meta | 32 ++ .../Plugins/Android/proguard-user.txt | 3 + .../Plugins/Android/proguard-user.txt.meta | 7 + Runtime/GuruNetworkMonitor/Plugins/IOS.meta | 8 + .../Plugins/IOS/Connectivity.framework.meta | 33 ++ .../IOS/Connectivity.framework/Connectivity | Bin 0 -> 131824 bytes .../Headers/Connectivity-Swift.h | 337 ++++++++++++++++++ .../IOS/Connectivity.framework/Info.plist | Bin 0 -> 761 bytes .../Project/arm64-apple-ios.swiftsourceinfo | Bin 0 -> 2520 bytes .../arm64-apple-ios.abi.json | 9 + .../arm64-apple-ios.swiftdoc | Bin 0 -> 396 bytes .../arm64-apple-ios.swiftmodule | Bin 0 -> 25984 bytes .../Modules/module.modulemap | 4 + .../_CodeSignature/CodeResources | 168 +++++++++ Runtime/GuruNetworkMonitor/README.md | 0 Runtime/GuruNetworkMonitor/README.md.meta | 7 + Runtime/GuruNetworkMonitor/Runtime.meta | 8 + .../Runtime/NetworkStatusMonitor.cs | 104 ++++++ .../Runtime/NetworkStatusMonitor.cs.meta | 3 + Runtime/GuruNetworkMonitor/Runtime/Proxy.meta | 8 + .../Runtime/Proxy/INetworkStatusProxy.cs | 16 + .../Runtime/Proxy/INetworkStatusProxy.cs.meta | 3 + .../Runtime/Proxy/NetworkStatusAndroid.cs | 56 +++ .../Proxy/NetworkStatusAndroid.cs.meta | 3 + .../Runtime/Proxy/NetworkStatusEditor.cs | 50 +++ .../Runtime/Proxy/NetworkStatusEditor.cs.meta | 3 + .../Runtime/Proxy/NetworkStatusIOS.cs | 60 ++++ .../Runtime/Proxy/NetworkStatusIOS.cs.meta | 3 + 32 files changed, 949 insertions(+) create mode 100644 Runtime/GuruNetworkMonitor.meta create mode 100644 Runtime/GuruNetworkMonitor/Plugins.meta create mode 100644 Runtime/GuruNetworkMonitor/Plugins/Android.meta create mode 100644 Runtime/GuruNetworkMonitor/Plugins/Android/connectivity-1.0.0.aar create mode 100644 Runtime/GuruNetworkMonitor/Plugins/Android/connectivity-1.0.0.aar.meta create mode 100644 Runtime/GuruNetworkMonitor/Plugins/Android/proguard-user.txt create mode 100644 Runtime/GuruNetworkMonitor/Plugins/Android/proguard-user.txt.meta create mode 100644 Runtime/GuruNetworkMonitor/Plugins/IOS.meta create mode 100644 Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework.meta create mode 100755 Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Connectivity create mode 100644 Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Headers/Connectivity-Swift.h create mode 100644 Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Info.plist create mode 100644 Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo create mode 100644 Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.abi.json create mode 100644 Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftdoc create mode 100644 Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftmodule create mode 100644 Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/module.modulemap create mode 100644 Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/_CodeSignature/CodeResources create mode 100644 Runtime/GuruNetworkMonitor/README.md create mode 100644 Runtime/GuruNetworkMonitor/README.md.meta create mode 100644 Runtime/GuruNetworkMonitor/Runtime.meta create mode 100644 Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs create mode 100644 Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs.meta create mode 100644 Runtime/GuruNetworkMonitor/Runtime/Proxy.meta create mode 100644 Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs create mode 100644 Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs.meta create mode 100644 Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs create mode 100644 Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs.meta create mode 100644 Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs create mode 100644 Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs.meta create mode 100644 Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs create mode 100644 Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs.meta diff --git a/Runtime/GuruNetworkMonitor.meta b/Runtime/GuruNetworkMonitor.meta new file mode 100644 index 0000000..0a35a8c --- /dev/null +++ b/Runtime/GuruNetworkMonitor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 10f8491dbf6264bc393cb7578397ec7f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Plugins.meta b/Runtime/GuruNetworkMonitor/Plugins.meta new file mode 100644 index 0000000..5f47381 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bc0062a7d36f144beabfdea9e3a8e2c7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Plugins/Android.meta b/Runtime/GuruNetworkMonitor/Plugins/Android.meta new file mode 100644 index 0000000..43cb178 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/Android.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4725a71a48aec4a5083c37f5ff09a550 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Plugins/Android/connectivity-1.0.0.aar b/Runtime/GuruNetworkMonitor/Plugins/Android/connectivity-1.0.0.aar new file mode 100644 index 0000000000000000000000000000000000000000..510efd07c5d9cfd3ac7232805a279d4ec42fe786 GIT binary patch literal 5218 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 T&=JrP&=JrP&=L3_An^YHoBF9= literal 0 HcmV?d00001 diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Headers/Connectivity-Swift.h b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Headers/Connectivity-Swift.h new file mode 100644 index 0000000..06a0939 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Headers/Connectivity-Swift.h @@ -0,0 +1,337 @@ +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +#ifndef CONNECTIVITY_SWIFT_H +#define CONNECTIVITY_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#if defined(__arm64e__) && __has_include() +# include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# ifndef __ptrauth_swift_value_witness_function_pointer +# define __ptrauth_swift_value_witness_function_pointer(x) +# endif +# ifndef __ptrauth_swift_class_method_pointer +# define __ptrauth_swift_class_method_pointer(x) +# endif +#pragma clang diagnostic pop +#endif +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +# if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# else +# define SWIFT_RUNTIME_NAME(X) +# endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +# if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# else +# define SWIFT_COMPILE_NAME(X) +# endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +# if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# else +# define SWIFT_METHOD_FAMILY(X) +# endif +#endif +#if !defined(SWIFT_NOESCAPE) +# if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +# else +# define SWIFT_NOESCAPE +# endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +# if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# else +# define SWIFT_RELEASES_ARGUMENT +# endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +# if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# else +# define SWIFT_WARN_UNUSED_RESULT +# endif +#endif +#if !defined(SWIFT_NORETURN) +# if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +# else +# define SWIFT_NORETURN +# endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +# if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +# define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +# define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +# define SWIFT_NOEXCEPT noexcept +#else +# define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +# if __has_attribute(always_inline) +# if __has_attribute(nodebug) +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug)) +# else +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +# endif +# else +# define SWIFT_C_INLINE_THUNK inline +# endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import Foundation; +@import ObjectiveC; +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="Connectivity",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +@class NSString; + +SWIFT_CLASS("_TtC12Connectivity12Connectivity") +@interface Connectivity : NSObject +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) Connectivity * _Nonnull shared;) ++ (Connectivity * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull CONNECTIVITY_NONE;) ++ (NSString * _Nonnull)CONNECTIVITY_NONE SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull CONNECTIVITY_WIFI;) ++ (NSString * _Nonnull)CONNECTIVITY_WIFI SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull CONNECTIVITY_MOBILE;) ++ (NSString * _Nonnull)CONNECTIVITY_MOBILE SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull CONNECTIVITY_ETHERNET;) ++ (NSString * _Nonnull)CONNECTIVITY_ETHERNET SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull CONNECTIVITY_VPN;) ++ (NSString * _Nonnull)CONNECTIVITY_VPN SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull CONNECTIVITY_OTHER;) ++ (NSString * _Nonnull)CONNECTIVITY_OTHER SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +- (void)initializeWithCompletion:(void (^ _Nonnull)(BOOL))completion; +- (NSArray * _Nonnull)checkConnectionType SWIFT_WARN_UNUSED_RESULT; +@end + +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#else +#error unsupported Swift architecture +#endif diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Info.plist b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..392c2e148167b26bce8e61376256cefd63ae61be GIT binary patch literal 761 zcmYjOO;giA7|yOApeS7^ARq{(e&b}CYRh==LStt-rBIthD$^lulWn@gCL7bF+EEW) zz4-$?;Mt3Rz(3&08Saih!GGYkO{VPSdEe(Fvw61dGujJtxj$$TzzY{IU7ni0a&_j~ z_1P4fn@=w+F5OsOSzW%lw!X2M*~(^a-?^K;_s~S?-H0-~hOI93$bmN6Otexe??#@@ zh)Vi|ao;6g*dPw&o{8oY?fE-mMIml8a*nLn!b&@o1SVQfoE5LbRceJIkAuNW67 zO4NPqiZ7&-wT`V5>=1q63wAYOwJs0BIH`pJ^_=r!1 zqavE57Aa$wvVn=#j7o#NiD*FVu~5Q3Zc|1>N_s~Aae3!ygNTZ_=Mm9cpN1lowYV!g zQ4q24BH<@C*C~XW%cKf-?}o1-Jw^U^QcQbWO>o;4~9KBgwWD7()Wbb{ls|93>f3 zciN(8+NNssQ0+906?K=BArL227OZ?8cSF-NkIO4~7;+HeT%BK6m zHDZM$E>^tz+<%g54SJ)&tl@O4L9QC~oN*ww?-0F!2bwt5gskrBYOV?|-6A z)qQ8xYE9G2z6cv-1s_>M#-dc74wwd3U?ZbG*);GGj$?V2LpBOifG44s%c@-0&T949 z??IQUrO|LeLhJ!eukmlNg6VnC<;4hy)4z+niQ+~@&Z|O*S4MeRl|!Ma5U0vhiaHjS zBH;)xC<@r}(Wn#+Mfi}C&#TcfAv`uJC}CL*MI(}MH+A>mTIrwNIrkGj|4`xPD^Eo8 zn}zQn)SWgP5+|V^fr_wUsP=-ecY*IiXdQL{WQ1AeYY<#e_gaQ_i~977SyVhYhVAUg z-7jWw7l377WK8ocd{hymvymGD{^g>2xxYOC3w)J~*As9ZtTN zPUg_G{jo_8daim5ZVT7()Y~bP)p6|7!~5s>-kD&UiYgV0x{O|d#B}z#!boS*NjPYb zDQ|nK-@e&<7+WTkL5qVDsso!|j5iNH2i37`8l3_Mb|n>kgxtzk%HPM@Z}Xno&Fk8nET| literal 0 HcmV?d00001 diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.abi.json b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.abi.json new file mode 100644 index 0000000..dc109fc --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.abi.json @@ -0,0 +1,9 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "TopLevel", + "printedName": "TopLevel", + "json_format_version": 8 + }, + "ConstValues": [] +} \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftdoc b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftdoc new file mode 100644 index 0000000000000000000000000000000000000000..7b6dea073ed9aee90d5bd4dac30641a30dc86bde GIT binary patch literal 396 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

M!iSIghGX%RFFcR4b9!x3z7AX=%1 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 + + + + files + + Headers/Connectivity-Swift.h + + yQkPWwZ2klcFBQT3c4PI/gTVVAE= + + Info.plist + + n4FM+14bzgCqiae7BEnOfj78dFA= + + Modules/Connectivity.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo + + KGmpTymRqrX9y4GV/j+eFuhhTYM= + + Modules/Connectivity.swiftmodule/arm64-apple-ios.abi.json + + FSPnLbho3G+LL9smI3XgVOqBIQ4= + + Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftdoc + + NaKg9acNtBzWngYfwx3Nt50tA5o= + + Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftmodule + + TBHp8ndBz6+t9eK5i+Q7XONqD+w= + + Modules/module.modulemap + + JQ0IhYrWi46ysbcXxnNfARgJPro= + + + files2 + + Headers/Connectivity-Swift.h + + hash2 + + HIhSgITt+HNjHvu2O1pDvyjgx9HdyI801+Q9Bn92Suc= + + + Modules/Connectivity.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo + + hash2 + + HnYY+N0JWfujm6LckQtevFuYEFW4uYx4hcAkaFgCZp0= + + + Modules/Connectivity.swiftmodule/arm64-apple-ios.abi.json + + hash2 + + KnRdWE4y6t4QM5zi5JDptPdHFgJy1Tku+7GLkZS2aNM= + + + Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftdoc + + hash2 + + sgsu9CnSXAG3fxoW1HBRLZ9lCTX38BR3y2eik7e37zU= + + + Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftmodule + + hash2 + + S73u4XvAyezKkKReZVBDl16w7MSeeI6FBXUJ9OirCI4= + + + Modules/module.modulemap + + hash2 + + 07XGBKw7w58ugYy09lbnsq9IhqStrsOHCKCfwm/MrpU= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Runtime/GuruNetworkMonitor/README.md b/Runtime/GuruNetworkMonitor/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Runtime/GuruNetworkMonitor/README.md.meta b/Runtime/GuruNetworkMonitor/README.md.meta new file mode 100644 index 0000000..e2b4d8a --- /dev/null +++ b/Runtime/GuruNetworkMonitor/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a0a25c648675a494eb50f2dd3159ff81 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Runtime.meta b/Runtime/GuruNetworkMonitor/Runtime.meta new file mode 100644 index 0000000..178e456 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d1121778023d64cafad6d7eb947140d0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs b/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs new file mode 100644 index 0000000..f596716 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs @@ -0,0 +1,104 @@ + +namespace Guru.Network +{ + + using System; + using System.Collections.Generic; + using System.Linq; + using UnityEngine; + + public class NetworkStatusMonitor + { + private const string Tag = "[NET]"; + private const string NETWORK_STATUS_NONE = "none"; + private const string NETWORK_STATUS_MOBILE = "mobile"; + private const string NETWORK_STATUS_WIFI = "wifi"; + private const string NETWORK_STATUS_ETHERNET = "ethernet"; + private const string NETWORK_STATUS_VPN = "vpn"; + private const string NETWORK_STATUS_TETHER = "tether"; + + private bool _isReady = false; + + private INetworkStatusProxy _proxy; + private INetworkStatusProxy Proxy + { + get + { + if (_proxy == null) + { +#if UNITY_EDITOR + _proxy = new NetworkStatusEditor(); +#elif UNITY_ANDROID + _proxy = new NetworkStatusAndroid(); +#elif UNITY_IOS + _proxy = new NetworkStatusIOS(); +#endif + throw new NotImplementedException("Can't find NetworkStatusProxy instance!!"); + } + return _proxy; + } + + } + + private List _statusNameList = new List() + { + NETWORK_STATUS_NONE, + NETWORK_STATUS_ETHERNET, + NETWORK_STATUS_WIFI, + NETWORK_STATUS_MOBILE, + NETWORK_STATUS_VPN, + NETWORK_STATUS_TETHER + }; + + + + public void Init(Action onInitComplete = null) + { + Proxy.Init(success => + { + _isReady = success; + onInitComplete?.Invoke(success); + }); + } + + ///

+ /// 获取网络状态 + /// + /// + public string GetNetworkStatus() + { + if (_isReady) + { + var status = Proxy.GetNetworkStatus(); + if (status != null && status.Length > 0) + { + string statusName = ""; + for (int i = 0; i < _statusNameList.Count; i++) + { + // 根据名称优先级, 先获取到的优先上报 + statusName = _statusNameList[i]; + if (status.Contains(statusName)) + { + return statusName; + } + } + } + } + + return NETWORK_STATUS_NONE; + } + + // private void OnProxyInitComplete(bool success) + // { + // if (success) + // { + // Debug.Log($"{Tag} --- NetworkStatusMonitor init success"); + // } + // else + // { + // Debug.LogError($"{Tag} --- NetworkStatusMonitor init failed"); + // } + // } + + } +} \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs.meta b/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs.meta new file mode 100644 index 0000000..0108453 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 89389dfafc844651bb8f6a23865edca6 +timeCreated: 1721958852 \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy.meta b/Runtime/GuruNetworkMonitor/Runtime/Proxy.meta new file mode 100644 index 0000000..1550194 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1981d1e0510af48ff81cbd4db201318f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs b/Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs new file mode 100644 index 0000000..9c1acf9 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs @@ -0,0 +1,16 @@ + +namespace Guru.Network +{ + using System; + + /// + /// 网络状态代理 + /// + public interface INetworkStatusProxy + { + void Init(Action onInitComplete); + + string[] GetNetworkStatus(); + + } +} \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs.meta b/Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs.meta new file mode 100644 index 0000000..1f02917 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: aeba66b9f9e4413a8475bf5cc363fae1 +timeCreated: 1721957685 \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs new file mode 100644 index 0000000..060c991 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs @@ -0,0 +1,56 @@ + + +namespace Guru.Network +{ + using System; + using UnityEngine; + + public class NetworkStatusAndroid: INetworkStatusProxy + { + private const string Tag = "[NET]"; +#if UNITY_ANDROID + private const string CONNECTIVITY_ANDROID_CLASS_NAME = "com.guru.unity.monitor.Connectivity"; + private AndroidJavaObject _connectivity; + private bool _isReady = false; + +#endif + + + /// + /// 初始化 + /// + /// + public void Init(Action onInitComplete) + { +#if UNITY_ANDROID + 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}"); + onInitComplete?.Invoke(_isReady); // 调用初始化回调 +#endif + } + + /// + /// 获取网络状态 + /// + /// + public string[] GetNetworkStatus() + { +#if UNITY_ANDROID + if (_connectivity == null) + { + Debug.LogError($"{Tag} --- GetNetworkStatus :: _connectivity is Null!!"); + } + else + { + return _connectivity.Call("checkConnectionType"); + } + +#endif + return new string[] {"none"}; + } + } +} \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs.meta b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs.meta new file mode 100644 index 0000000..6cc4698 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1c5f41b5f3bc4aa2993e263f733deeb0 +timeCreated: 1721957773 \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs new file mode 100644 index 0000000..b3436a3 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs @@ -0,0 +1,50 @@ + + +namespace Guru.Network +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + using UnityEngine; + + + public class NetworkStatusEditor:INetworkStatusProxy + { + + /// + /// 初始化 + /// + /// + public async void Init(Action onInitComplete) + { + await Task.Delay(300); + Debug.Log($"[NET][EDT] --- init NetworkStatusEditor success int Editor"); + onInitComplete?.Invoke(true); + } + + /// + /// 获取网络状态 + /// + /// + public string[] GetNetworkStatus() + { + List status = new List(4); + + switch (Application.internetReachability) + { + case NetworkReachability.NotReachable: + status.Add("none"); + break; + case NetworkReachability.ReachableViaCarrierDataNetwork: + status.Add("mobile"); + break; + + case NetworkReachability.ReachableViaLocalAreaNetwork: + status.Add("wifi"); + break; + } + + return status.ToArray(); + } + } +} \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs.meta b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs.meta new file mode 100644 index 0000000..9b24582 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 657ecf666aa14a7dacef1160591c8115 +timeCreated: 1721958984 \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs new file mode 100644 index 0000000..7ed7475 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs @@ -0,0 +1,60 @@ + + +namespace Guru.Network +{ + using System; + using System.Runtime.InteropServices; + using AOT; + + + public class NetworkStatusIOS:INetworkStatusProxy + { + +#if UNITY_IOS + [DllImport("__Internal")] + private static extern IntPtr checkNetworkConnection(); + + [DllImport("__Internal")] + private static extern void freeCheckNetworkConnectionResult(IntPtr result); + + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + private delegate void InitializationCallback(bool success); + + [DllImport("__Internal")] + private static extern void initializeConnectivity(InitializationCallback callback); + + private static Action _initCompleteCallback; + + [MonoPInvokeCallback(typeof(InitializationCallback))] + private static void OnInitializationComplete(bool success) + { + _initCompleteCallback?.Invoke(success); + } +#endif + + +#if UNITY_IOS + +#endif + + + public void Init(Action onInitComplete) + { +#if UNITY_IOS + _initCompleteCallback = onInitComplete; + initializeConnectivity(OnInitializationComplete); +#endif + } + + public string[] GetNetworkStatus() + { +#if UNITY_IOS + IntPtr ptr = checkNetworkConnection(); + string result = Marshal.PtrToStringAnsi(ptr); + freeCheckNetworkConnectionResult(ptr); + return result.Split(','); +#endif + return new string[] {"none"}; + } + } +} \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs.meta b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs.meta new file mode 100644 index 0000000..6d1c12d --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f51ea25e1ecf41c18d7fcd9951d61aeb +timeCreated: 1721958507 \ No newline at end of file