unit Androidapi.JNI.Network;interfacefunction IsConnected: Boolean;function IsWiFiConnected: Boolean;function IsMobileConnected: Boolean;implementationuses  System.SysUtils,  Androidapi.JNIBridge,  Androidapi.JNI.GraphicsContentViewText,  Androidapi.JNI.JavaTypes,  FMX.Helpers.Android;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) 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) 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.

调用方法:

if  IsConnected  then ShowMessage('IsConnected');if IsWiFiConnected then ShowMessage('IsWiFiConnected');if IsMobileConnected then ShowMessage('IsMobileConnected');

更多相关文章

  1. ANDROID NDK使用第三方静态库的方法
  2. Android 应用退出的几种方法
  3. android 关于InputDispatcher出现Consumer异常的解决方法
  4. Android获取本机局域网IP的方法
  5. Android实现模拟点击的一种方法
  6. Android scrollview嵌套listview 滑动事件冲突的解决方法

随机推荐

  1. android的KeyGuard
  2. android 创建动态创建菜单(钩子)
  3. android xml 常用控件介绍
  4. Android剖析和运行机制
  5. android 开启本地相册选择图片并返回显示
  6. android中的两端对齐
  7. Android横竖屏切换解决方案
  8. Android生成keystore是报错拒绝访问
  9. Android(安卓)AlertDialog的基本使用方法
  10. Received status code 400 from server: