代码

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<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.

记得要在project的option里的permission里面给权限

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

更多相关文章

  1. android 实现流媒体播放远程mp3文件代码
  2. Android(安卓)ToggleButton控件的用法
  3. Android图片压缩
  4. Android——简单对话框
  5. Android(安卓)Robotium的自动化代码
  6. Android写文件到Sd卡的一般过程
  7. Android(安卓)列表之分组ListView
  8. android handle ui 更新
  9. Android(安卓)获取时间实例代码

随机推荐

  1. 谷歌称Android设备日激活量已达10万台
  2. Android(安卓)开发打包时我们应该如何注
  3. android中的数据存取-方式一:preference(配
  4. 短信轰炸,得罪一个Android转Python的程序
  5. Android(安卓)中的数据存取方式之一: Pre
  6. Android(安卓)用adb 打印linux内核调试信
  7. 10 款网页设计师必知的免费 Android(安卓
  8. 读书笔记 Pro Android(安卓)3 第2章 节选
  9. [Android--Tool]SDK中截取连接的被调试手
  10. android之首选项相关 Preferences(一)