ну да, это не мое решение так разделить, написал на скорую для Вас
function checkNetwork: Boolean;
var
ConnectivityServiceNative: JObject;
cm: JConnectivityManager;
activeNetwork: JNetworkInfo;
begin
try
// подключаемся к сервису (в данном случае соединений)
ConnectivityServiceNative := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.CONNECTIVITY_SERVICE);
// если не подключились то выход c результататом функции FALSE
if not Assigned(ConnectivityServiceNative)
then exit(false);
// получаем менеджер соединений
cm := TJConnectivityManager.Wrap((ConnectivityServiceNative as ILocalObject).GetObjectID);
// если не получили то выход c результататом функции FALSE
if not Assigned(Result)
then exit(false);
// запрашиваем информацию о активном соединении
activeNetwork := cm.getActiveNetworkInfo;
// если есть информация и статус соединения подключено то результат функции TRUE
Result := Assigned(ActiveNetwork) and ActiveNetwork.isConnected;
except
// при любой ошибке выход c результататом функции FALSE
Exit(false);
end;
end;