functionGetNetType:TNetType;
{$IFDEFANDROID}
functionAndroidNetType:TNetType;
var
AMgr:JConnectivityManager;
ANetwork:JNetworkInfo;
AType:Integer;
ASubName:String;
begin
Result:=TNetType.Other;
AMgr:=ConnectivityManager;
ifAssigned(AMgr)then
begin
ANetwork:=AMgr.getActiveNetworkInfo;
ifAssigned(ANetwork)then
begin
AType:=ANetwork.getType;
ifAType=TJConnectivityManager.JavaClass.TYPE_BLUETOOTHthen
Result:=TNetType.Bluetooth
elseifAType=TJConnectivityManager.JavaClass.TYPE_ETHERNETthen
Result:=TNetType.Ethernet
elseifAType=TJConnectivityManager.JavaClass.TYPE_WIFIthen
Result:=TNetType.Wifi
elseifAType=TJConnectivityManager.JavaClass.TYPE_MOBILEthen
begin
AType:=TelephonyManager.getNetworkType;
if(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_1xRTT)or
(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_CDMA)or
(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_EDGE)or
(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_GPRS)or
(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_IDEN)then
Result:=TNetType.Mobile2G
elseif(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_UMTS)or
(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_EVDO_0)or
(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_EVDO_A)or
(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_EVDO_B)or
(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_HSDPA)or
(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_HSUPA)or
(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_HSPA)or
(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_EHRPD)or
(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_HSPAP)then
Result:=TNetType.Mobile3G
elseif(AType=TJTelephonyManager.JavaClass.NETWORK_TYPE_LTE)then
Result:=TNetType.Mobile4G
else
begin
ASubName:=UpperCase(JStringToString(ANetwork.getSubtypeName));
if(ASubName='TD-SCDMA')or(ASubName='WCDMA')or
(ASubName='CDMA2000')then
Result:=TNetType.Mobile3G;
end;
end;
end;
end;
end;
{$ENDIF}
{$IFDEFIOS}
functioniOSNetType:TNetType;
var
ANetInfo:CTTelephonyNetworkInfo;
AName:String;
begin
if(ConnectionReachabilityFlagsandkSCNetworkReachabilityFlagsIsWWAN)<>0
then
begin
ANetInfo:=TCTTelephonyNetworkInfo.Create;
AName:=UpperCase(Copy(NSStrToStr(ANetInfo.currentRadioAccessTechnology),
24,MaxInt));
if(AName='GPRS')or(AName='EDGE')or(AName='CDMA1X')then
Result:=TNetType.Mobile2G
elseif(AName='WCDMA')or(AName='HSDPA')or(AName='HSUPA')or
(AName='CDMAEVDOREV0')or(AName='CDMAEVDOREVA')or
(AName='CDMAEVDOREVB')or(AName='HRPD')then
Result:=TNetType.Mobile3G
elseif(AName='LTE')then
Result:=TNetType.MobileLTE
else
Result:=TNetType.Other;
end
else
Result:=TNetType.Wifi
end;
{$ENDIF}
begin
ifIsInternetConnectedthen
begin
{$IFDEFANDROID}
Result:=AndroidNetType;
{$ENDIF}
{$IFDEFIOS}
Result:=iOSNetType;
{$ENDIF}
{$IFDEFMSWINDOWS}
Result:=TNetType.Other;
{$ENDIF}
end
else
Result:=TNetType.None;
end;