大佬教程收集整理的这篇文章主要介绍了如何检查Android和iOS上的网络是否可用(Delphi XE5),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
unit Network; interface function IsConnected: Boolean; function IsWiFiConnected: Boolean; function IsMobileConnected: Boolean; implementation uses System.SysUtils,Androidapi.JNIBridge,Androidapi.JNI.GraphicsContentViewText,Androidapi.JNI.JavaTypes,FMX.Helpers.Android,Androidapi.Helpers,Misc; type JConnectivitymanager = interface; JNetworkInfo = interface; JNetworkInfoClass = interface(JObjectClass) ['{E92E86E8-0BDE-4D5F-B44E-3148BD63A14C}'] end; [JavaSignature('android/net/NetworkInfo')] JNetworkInfo = interface(JObject) ['{6DF61A40-8D17-4E51-8EF2-32CDC81AC372}'] {Methods} function isAvailable: Boolean; cdecl; function isConnected: Boolean; cdecl; function isConnectedOrConnecTing: Boolean; cdecl; end; TJNetworkInfo = class(TJavaGenericImport<JNetworkInfoClass,JNetworkInfo>) end; JConnectivitymanagerClass = interface(JObjectClass) ['{E03A261F-59A4-4236-8CDF-0068FC6C5FA1}'] {Property methods} function _GetTYPE_WIFI: Integer; cdecl; function _GetTYPE_WIMAX: Integer; cdecl; function _GetTYPE_MOBILE: Integer; cdecl; {Properties} property TYPE_WIFI: Integer read _GetTYPE_WIFI; property TYPE_WIMAX: Integer read _GetTYPE_WIMAX; property TYPE_MOBILE: Integer read _GetTYPE_MOBILE; end; [JavaSignature('android/net/Connectivitymanager')] JConnectivitymanager = interface(JObject) ['{1C4C1873-65AE-4722-8EEF-36BBF423C9C5}'] {Methods} function getActiveNetworkInfo: JNetworkInfo; cdecl; function getNetworkInfo(networkType: Integer): JNetworkInfo; cdecl; end; TJConnectivitymanager = class(TJavaGenericImport<JConnectivitymanagerClass,JConnectivitymanager>) end; function GetConnectivitymanager: JConnectivitymanager; var ConnectivityserviceNative: JObject; begin ConnectivityserviceNative := SharedActivityContext.getSystemservice(TJContext.JavaClass.CONNECTIVITY_serviCE); if not Assigned(ConnectivityserviceNativE) then raise Exception.Create('Could not locate Connectivity service'); Result := TJConnectivitymanager.Wrap( (ConnectivityserviceNative as ILocalObject).GetObjectID); if not Assigned(Result) then raise Exception.Create('Could not access Connectivity Manager'); end; function IsConnected: Boolean; var Connectivitymanager: JConnectivitymanager; ActiveNetwork: JNetworkInfo; begin Connectivitymanager := GetConnectivitymanager; ActiveNetwork := Connectivitymanager.getActiveNetworkInfo; Result := Assigned(ActiveNetwork) and ActiveNetwork.isConnected; end; function IsWiFiConnected: Boolean; var Connectivitymanager: JConnectivitymanager; WiFiNetwork: JNetworkInfo; begin Connectivitymanager := GetConnectivitymanager; WiFiNetwork := Connectivitymanager.getNetworkInfo(TJConnectivitymanager.JavaClass.TYPE_WIFI); Result := WiFiNetwork.isConnected; end; function IsMobileConnected: Boolean; var Connectivitymanager: JConnectivitymanager; MobileNetwork: JNetworkInfo; begin Connectivitymanager := GetConnectivitymanager; MobileNetwork := Connectivitymanager.getNetworkInfo(TJConnectivitymanager.JavaClass.TYPE_MOBILE); Result := MobileNetwork.isConnected; end; end.
以上是大佬教程为你收集整理的如何检查Android和iOS上的网络是否可用(Delphi XE5)全部内容,希望文章能够帮你解决如何检查Android和iOS上的网络是否可用(Delphi XE5)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。