如何检查Android和iOS上的网络是否可用(Delphi XE5)

如何检查Android和iOS上的网络是否可用(Delphi XE5),第1张

概述>如何检查 Android和iOS上的网络是否可用? 试试这个: unit Network;interfacefunction IsConnected: Boolean;function IsWiFiConnected: Boolean;function IsMobileConnected: Boolean;implementationuses System.SysUt >如何检查 Android和iOS上的网络是否可用?解决方法 试试这个:
unit Network;interfacefunction IsConnected: Boolean;function IsWiFiConnected: Boolean;function IsMobileConnected: Boolean;implementationuses  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)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1134548.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存