Перейти к содержанию
Fire Monkey от А до Я

UFO 007

Пользователи
  • Постов

    33
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные UFO 007

  1. Так вот где собака порылась:

    14 часов назад, OnePeople сказал:
    .setNetworkSpecifier( TJNetworkSpecifier.Wrap((WifiNetworkSpecifier as ILocalObject).GetObjectID))

    а то "интерфейситься" не туда, втыкать "левую" перегрузку... А процедура Ваша - "огонь": подключается на "ура", но (куда же без этих "но") напрягает вот этот снэкбар:

     

     

     

    Screenshot_2021-11-30-21-56-38-084_com.android.settings.thumb.jpg.2e619b5582ce5d79265a9835b28ebdc4.jpg

    это - проделки Андрюхи (из глубины ядра)? Избавиться никак нельзя? И

    14 часов назад, OnePeople сказал:

    нахожу все сети, заполняю ими ListView

    а поподробней нельзя?: какими компонентами/экземплярами каких классов/через какие свойства/методы...? А ещё лучше на паскале. 

  2. В 27.11.2021 в 18:27, OnePeople сказал:

    что не работает

    перегрузка

       function setNetworkSpecifier(networkSpecifier: JWifiNetworkSpecifier): JNetworkRequest_Builder; cdecl; overload;

    тел пишет: Invoke error: method not found (а чего стоило ожидать?)... А ведь не зря я это (интуитивно) упоминал:

     

    В 23.11.2021 в 21:54, UFO 007 сказал:
    type
    	JWifiNetworkSpecifier = class(TJNetworkSpecifier)
    ...
    end;

     

    оказывается (точнее - как Дэлфе объяснить?) что

    public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parcelable {

    моя конструкция кричит (что естественно) "несовместимые типы"... а что касается 

    В 25.11.2021 в 22:51, OnePeople сказал:

    procedure NetworkonAvailable(network: JNetwork);

     

    В 25.11.2021 в 21:41, UFO 007 сказал:

    onAvailable хочет один-единственный параметр (NetWork: JNetWork)

    а процедура возвращает ЧТО? - правильно: void... вот поэтому и функция ИмяФункции(любые параметры):JNetwork;

  3. Я, конечно дико извиняюсь, но сегодня - "не Ваш день": конструкция с присваиванием (мож по-Явовски так и можно, но... [я, кстати, наивно пытался заменить '{' после onAvailable на begin - так подчёркивало красным]) провалилась с треском (то же самое красное подчёркивание)... СитуЁВину вродь как выправило (убралось подчёркивание) такое:

    Function NetworkonAvailable(network: JNetwork): JNetwork;
    
    begin
      /// тут чё писать - уму не растяжимо: мож Хто подскажет???
    end;
    
    Function TForm1.WIfiConnect(SSIDtoConnect: string): boolean;
    ....
    ///
    ....
            Callback.onAvailable(NetworkonAvailable(ConnectivityManager.getActiveNetwork));
    ...
    end

    но "... меня терзают смутные сомнения ..." что мы с Вами изобретаем такой лИСАпед, который не то, что не взлетит (как должно), а даже - не поедет...

    З.Ы. Сомнения обосновываются, как минимум, тем, что предка (родителя) WiFiNetworkSpecifier мы переопределили и Х-его-З в какую сторону (поможет это или только помешает???)... В общем - я на "измене" и в успех верится слабо...

  4. "... так вот ты какой, Северный Олень..." или "... а Ларчик открывался просто: ..." просто вместо открывания скобки надо присваивать (:=)...

    OnePeopleспасибо Вам огромное за то, что якшаетесь со мной как с маленьким... Дело в том, что моё "портфолио" состоит из десятка-полтора VCL-програмулин (для Винды - соответственно и, как видите - у мя тож не ПРОФ, а хобби) а вот с Андрюхой - это мой первый опыт. Но позволю себе заметить:

    В 21.11.2021 в 20:42, OnePeople сказал:

    переписывать на Delphi (паскале, не считаю)

    типа: по-библейски - "И был сначала Pascal, потом TurboPascal, потом всё это дело обросло формами, эвентами, мессагами... И лишь на 7-й день явилась Delphi-1..." А потом (которые я пользовал) D7, D2010, xe2, xe8... А потом погнала "Международная панорама": Берлин, Токио, Сиэтл, Рио, Сидней... Пардон - если мой тон показался резковатым.

    З.Ы. иСЧё раз - огромное спасибо

  5. 5 часов назад, OnePeople сказал:

    deprecated in API level 29.

    дык брешет-то с АПИ 23, но подключает (что очень для меня неожиданно т.к. как часы работало только из-под хе8, а 10.3.3 Рио и 10.4.1 Сидней - трассируй/не трассируй не подключалось и что повлияло: Сидней 10.4.или (скорее) ветвление по БуилдВерсион)? а на РедМи 9Т (АПИ 29) в настройках ВайВай (удержание значка в "шторке") - ЕСПха только в списке доступных...

    А по поводу КэлБэк - как на Паскале реализовать такое:

    1:		networkCallback = new ConnectivityManager.NetworkCallback() {
            @Override
            public void onAvailable(Network network) {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    manager.bindProcessToNetwork(network);
                } else {
                    //This method was deprecated in API level 23
                    ConnectivityManager.setProcessDefaultNetwork(network);
                }
                try {
                    //do a callback or something else to alert your code that it's ok to send the message through socket now
                } catch (Exception e) {
                    e.printStackTrace();
                }
                manager.unregisterNetworkCallback(this);
            }
        });

    у меня получается:

          ConnectivityManager:= GetConnectivityManager;
          if ConnectivityManager <> nil then
          begin
    1:      Callback:= TJConnectivityManager_NetWorkCallback.JavaClass.init;//.Create;
            ConnectivityManager.registerDefaultNetworkCallback(Callback);
            ConnectivityManager.requestNetwork(NetworkRequest, Callback);
            Callback.onAvailable(ConnectivityManager.getActiveNetwork);
          end
          else ShowMessage('Не удалось получить экземпляр менеджера подключений');

    меня смущает то, что у нас метод onAvailable хочет один-единственный параметр (NetWork: JNetWork), а в Яве он разворачивается в целую процедуру (где можно накрапать ого-го-го)... Тем более - он процедура а не булева ф-ция: понять доступна или нет указанная сеть невозможно...

  6. RedMi_4Pro(АПИ_23) хоть и пишет  "Not Connected", но при удержании значка ВайВай (что в "шторке") - ESP-007.1M подключено без доступа в интернет (даже после удаления этой сети из списка сохранённых)... Стало быть глючит:

    function IsWiFiConnected: Boolean;
    var
      ConnectivityManager: JConnectivityManager;
      WiFiNetwork: JNetworkInfo;
    begin
      ConnectivityManager := GetConnectivityManager;
      WiFiNetwork := ConnectivityManager.getNetworkInfo(TJConnectivityManager.JavaClass.TYPE_WIFI);
      Result := WiFiNetwork.IsConnected;
    end;

    а под хе8 пахала на "ура"...

  7. 21 минуту назад, UFO 007 сказал:
    WifiNetworkSpecifier_Builder.setWpa2Passphrase(StringToJString(''));

    заменил на

    WifiNetworkSpecifier_Builder.setIsEnhancedOpen(false);

    и хоть (true), хоть (false) т.е. расширенная/нерасширенная, но открытая (мож и здесь неправильно понимаю), всёрно  "Not Connected". (ЕСПэха только в списке доступных)... А мож КэлБэк виноват? (тут, если честно, вообще не догоняю - КэлБэк: это событие, прерывание, или ... ??? когда наступает/происходит и как работает? Если можно, плз, в трёх словах) Заполнил чем под руки попало.

  8. ... подчёркивание пропало, компилится - норм, но тел упорно пишет "Not Connected"... Вот весь код:

    procedure TForm1.Button1Click(Sender: TObject);
    var
      ts: TStringList;
    begin
      BuildCode:= TJBuild_VERSION.JavaClass.SDK_INT;
      memo1.Lines.Add(inttostr(BuildCode));
    //  ts:= TStringList.Create;
    //  WIfiScan('ESP-007', ts);
    //  memo1.Lines.AddStrings(ts);
      WIfiConnect('ESP-007.1M');
      if IsWiFiConnected then   memo1.Lines.Add('Connected')
      else   memo1.Lines.Add('Not Connected');
    end;
    
    Function TForm1.WIfiConnect(SSIDtoConnect: string): boolean;
    Var
    {$IfDEF ANDROID}
      conf: JWIfiConfiguration;
      list: JList;
      iter: JIterator;
      Capabilities: JNetworkCapabilities;
      ConnectivityManager: JConnectivityManager;
      Callback: JConnectivityManager_NetWorkCallback;
      NetworkRequest_Builder: JNetworkRequest_Builder;
      NetworkRequest: JNetworkRequest;
      WifiNetworkSpecifier: JWifiNetworkSpecifier;
      WifiNetworkSpecifier_Builder: JWifiNetworkSpecifier_Builder;
    {$EndIf}
    Begin
      SSIDtoConnect:= '"'+SSIDtoConnect+'"';
      Try
        if BuildCode < 29 then
        Begin            // SharedActivityContext
          WIfiManagerObj := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.WIfI_SERVICE);
          WIfiManager := TJWIfiManager.Wrap((WIfiManagerObj as ILocalObject).GetObjectID);
          conf:= TJWIfiConfiguration.JavaClass.init;
          conf.SSID:= StringToJString(SSIDtoConnect);//'"ESP-007.1"');
          conf.allowedKeyManagement.&set(TJWIfiConfiguration_KeyMgmt.JavaClass.NONE);
          netID:= WIfiManager.addNetwork(conf);// добавляем внаглую - не мешало бы проверить может она уже есть в ConfiguredNetworks?
          list:= wIfiManager.getConfiguredNetworks;
          iter := list.iterator;
          While (iter.hasNext) Do
          Begin
            conf := TJWIfiConfiguration.Wrap((iter.next as ILocalObject).GetObjectID);
            If JStringToString(Conf.SSID)  = SSIDtoConnect Then// '"ESP-007.1"'
            Begin
              wIfiManager.disconnect;
              wIfiManager.enableNetwork(Conf.networkId, true);
              wIfiManager.reconnect;
      //      Result:=   Sleep(1500);
            End;
          End;
        End
        Else  // BuildCode >= 29
        Begin
          WifiNetworkSpecifier_Builder:= TJWifiNetworkSpecifier_Builder.JavaClass.init;
          WifiNetworkSpecifier_Builder.setSsid(StringToJString(SSIDtoConnect));//'"'+'wifi-ap-ssid'+'"'
          WifiNetworkSpecifier_Builder.setWpa2Passphrase(StringToJString('')); // wifi-ap-password
          WifiNetworkSpecifier := WifiNetworkSpecifier_Builder.build;
    memo1.Lines.Add('NetworkSpecifier'+JStringToString(WifiNetworkSpecifier.toString));
          NetworkRequest_Builder:= TJNetworkRequest_Builder.JavaClass.init;
          NetworkRequest_Builder.addTransportType(TJNetworkCapabilities.JavaClass.TRANSPORT_WIFI);
          NetworkRequest_Builder.addCapability(TJNetworkCapabilities.JavaClass.NET_CAPABILITY_INTERNET);
          NetworkRequest_Builder.setNetworkSpecifier(WifiNetworkSpecifier);//  as JNetworkSpecifier
          NetworkRequest := NetworkRequest_Builder.build;
    memo1.Lines.Add('NetworkRequest'+JStringToString(NetworkRequest.toString));
          ConnectivityManager:= GetConnectivityManager;
          Callback:= TJConnectivityManager_NetWorkCallback.JavaClass.init;//.Create;
          if ConnectivityManager <> nil then
          ConnectivityManager.requestNetwork(NetworkRequest, Callback);
          Callback.onAvailable(ConnectivityManager.getActiveNetwork);
        End;
        Result:= IsWiFiConnected;
      Except
        on E: EJNIException do
        ShowMessage('Произошла ошибка класса: ' +#13 +#10 + E.ClassName +#13 +#10 +
        'c сообщением: ' +#13 +#10 + E.Message);
      End;
    //  If Result Then
    //  MyShwMsg('Подключение: связь с устройством' + #10 + #13 + SSIDtoConnect
    //              + #10 + #13 + ' установлена.');
    End;

    тел точку доступа видит, но... мож дело в setWpa2Passphrase - т.д. открытая: ВайВайМанагер через TJWIfiConfiguration_KeyMgmt.JavaClass.NONE подключался (правда в АПИ23) на "Ура"...

  9. Выкопал в силиконовой долине следующее:

    public abstract class NetworkSpecifier
    extends Object

    java.lang.Объект
    спецификация android.net.networks
    Известные прямые подклассы
     
    ну, а раз уж WifiNetworkSpecifier есть подкласс NetworkSpecifier, то должно быть что-то типа иерархии:
    type
    	JWifiNetworkSpecifier = class(TJNetworkSpecifier)
    ...
    end;

    наследник-то будет вродь-как совместимого типа...

    После ребута Дэлфей выглядеть стало поприятней

    JWifiNetworkSpecifier.thumb.jpg.cd41cc34207c1dabdcf7c083edd14b2a.jpg

    но красное подчёркивание говорит, что нет такой перегрузки

     

  10. [DCC Error] wifi_sdk.pas(167): E2250 There is no overloaded version of 'setNetworkSpecifier' that can be called with these arguments

    В Androidapi.JNI.Net прописано:

      [JavaSignature('android/net/NetworkRequest$Builder')]
      JNetworkRequest_Builder = interface(JObject)
        ['{AA7B1C54-8947-4A75-AEAB-8983141D28A7}']
        function addCapability(capability: Integer): JNetworkRequest_Builder; cdecl;
    ...
        function setNetworkSpecifier(networkSpecifier: JString): JNetworkRequest_Builder; cdecl; overload;
        function setNetworkSpecifier(networkSpecifier: JNetworkSpecifier): JNetworkRequest_Builder; cdecl; overload;
      end;

    и добавление 

        function setNetworkSpecifier(networkSpecifier: JWiFiNetworkSpecifier): JNetworkRequest_Builder; cdecl; overload;

    ситуЁвину не выправляет - а ведь нативный (Явовский) Буилдер (точнее его setNetworkSpecifier) принимает параметр именно типа WiFiNetworkSpecifier - как ето дело объегорить?

  11. И иСЧё раз огромнейшее СПАСИБО!!! И, пардон, но Ефимовский Androidapi.JNI.net.wifi.pas прикручен был ещё к Dxe8 (где я успешно написал и откатал прогу, но... для API 23 а проблемы "несостыковки" начались с появлением у мя Honor 8A [API 28] и RedMI 9T[API 29]) а вот то, что в нём может оказаться искомый специфер - ет протормозил (ещё раз Мерси).  Ну и само-собой:

    if TJBuild_VERSION.JavaClass.SDK_INT < 29 then
    	WiFiManger
    else
    	Specifiers

     

  12. 22 часа назад, OnePeople сказал:

    НАШКЛАСС.ОБЕРНУТЬ(ИД_ОБЪЕКТА)

    Если я правильно усёк, то это там, где 

    context.getSystemService

    а там, где ... = New ... => по-нашему будет .Create. А по поводу 

     

    22 часа назад, OnePeople сказал:

    некоторые вещи, вообще не реализованы,

    это - к Ярославу Бровину (если не изменяет память) или (точнее) к его конторе (Ембаркадеро)... Ну, или кто поумнее(пограмотней) моего подскажет где (в каком файле) и что нужно прописать чтобы к нативному (явовскому) JWifiNetworkSpecifier-у приинтерфейситься правильно...

  13. 3 часа назад, OnePeople сказал:

    некоторые вещи, вообще не реализованы

    TJWifiNetworkSpecifier и его Буилдер: 

    [DCC Error] wifi_sdk.pas(81): E2003 Undeclared identifier: 'JWifiNetworkSpecifier_Builder' как быть? в файле Androidapi.JNI.Net.pas. прописал

      JWiFiNetworkSpecifierClass = interface(JObjectClass)
        ['{09C5C88A-A950-4C2F-B0F0-E03989C16220}']
      end;
    
      [JavaSignature('android/net/WiFiNetworkSpecifier')]
      JWiFiNetworkSpecifier = interface(JObject)
       ['{04D0A623-E880-404E-8E1D-8CC4DDB8DCAF}']
      end;
      TJWiFiNetworkSpecifier = class(TJavaGenericImport<JWiFiNetworkSpecifierClass, JWiFiNetworkSpecifier>) end;

    и всёрно Е2003...:( :( 

  14. Спасибо Огромное!!!

    Ну, допустим, Manager у меня "завёрнут" более-или-менее симпотЯШно:

    function GetConnectivityManager: JConnectivityManager;
    var
      ConnectivityServiceNative: JObject;
    begin                           
      ConnectivityServiceNative := TAndroidHelper.Context.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;
    

    а за остальное - нижайший поклон. А по поводу

    1 час назад, OnePeople сказал:

    Чушь полная ....

    как раз и хотел бы разобраться (т. е. понять для себя) - какая разница между .Create, и .Wrap (где можно/НЕможно-нужно/НЕнужно применять или в такой-то ситуации необходимо .Create, а в такой-то только .Wrap) а из Ваших подсказок вытекает, что ещё и .Init существует... Я к тому, что в VCL ничего кроме Create не существовало, а в fmx - в какой ситуации и кого из этой троицы задействовать?

     

    Спасибо.

  15. Спасибо, конечно, огромное, но... из-за постоянного апдейта SDK (новому железу - новые библиотИки) вылазит конфликт, благодаря которому, свой "скелет" пришлось реализовывать на Яве. Хотя - может стОит присмотреться к Вашему "исходнику" (мож даже на яву "перевести")... А вообще в потоки я не въехал изначально: у ZX-Spectrum (если не изменяет память) были ещё и каналы - отсюда и путаница: придётся восполнять пробелы... Да и в Дэлфе упёрся в интерфейсы Явовских классов... Вот теперь и на распутье...

  16. В 09.04.2021 в 04:05, qz5 сказал:

    ... Xamarin ...

    ... вместе с AS на предмет редактора формы Дэлфе и в подмётки не годятся... Да и компилит/деплоит/инсталлит Дэлфя уж по сравнением с Хамарином вдвое (если не втрое) быстрее.

  17. Доброго всем времени суток.

    Перевожу на Pascal такое:

     WifiNetworkSpecifier.Builder builder = new WifiNetworkSpecifier.Builder();
        builder.setSsid("wifi-ap-ssid");
        builder.setWpa2Passphrase("wifi-ap-password");
    
        WifiNetworkSpecifier wifiNetworkSpecifier = builder.build();
    
        NetworkRequest.Builder networkRequestBuilder1 = new NetworkRequest.Builder();
        networkRequestBuilder1.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
        networkRequestBuilder1.setNetworkSpecifier(wifiNetworkSpecifier);
    
        NetworkRequest nr = networkRequestBuilder1.build();
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        cm.requestNetwork(nr, callback);

    И уже вродь-как начало сростаться, но упёрся вот в какую штуку:

    TRANSPORT_WIFI.thumb.jpg.52a2584e814746bffd0fcb401cc6775a.jpg

    в выпадающем списке доступных методов и свойств напрочь отсутствуют след. св-ва: TRANSPORT_BLUETOOTH, TRANSPORT_CELLULAR, TRANSPORT_ETHERNET, TRANSPORT_VPN, TRANSPORT_WIFI и TRANSPORT_WIFI_AWARE... Но если суслика не видно, то он - есть:

      JNetworkCapabilitiesClass = interface(JObjectClass)
        ['{E908BEFD-1FFE-4DBA-B9F3-48CE1E205BDE}']
        {class} function _GetCREATOR: JParcelable_Creator; cdecl;
    	....
        {class} function _GetTRANSPORT_BLUETOOTH: Integer; cdecl;
        {class} function _GetTRANSPORT_CELLULAR: Integer; cdecl;
        {class} function _GetTRANSPORT_ETHERNET: Integer; cdecl;
        {class} function _GetTRANSPORT_VPN: Integer; cdecl;
        {class} function _GetTRANSPORT_WIFI: Integer; cdecl;
        {class} function _GetTRANSPORT_WIFI_AWARE: Integer; cdecl;
    	....
        {class} property TRANSPORT_BLUETOOTH: Integer read _GetTRANSPORT_BLUETOOTH;
        {class} property TRANSPORT_CELLULAR: Integer read _GetTRANSPORT_CELLULAR;
        {class} property TRANSPORT_ETHERNET: Integer read _GetTRANSPORT_ETHERNET;
        {class} property TRANSPORT_VPN: Integer read _GetTRANSPORT_VPN;
        {class} property TRANSPORT_WIFI: Integer read _GetTRANSPORT_WIFI;
        {class} property TRANSPORT_WIFI_AWARE: Integer read _GetTRANSPORT_WIFI_AWARE;
      end;
    
      [JavaSignature('android/net/NetworkCapabilities')]
      JNetworkCapabilities = interface(JObject)
        ['{E9EBA97B-F82A-41BA-8170-537E131E0533}']
        function describeContents: Integer; cdecl;
        function equals(obj: JObject): Boolean; cdecl;
        function getLinkDownstreamBandwidthKbps: Integer; cdecl;
        function getLinkUpstreamBandwidthKbps: Integer; cdecl;
        function hasCapability(capability: Integer): Boolean; cdecl;
        function hasTransport(transportType: Integer): Boolean; cdecl;
        function hashCode: Integer; cdecl;
        function toString: JString; cdecl;
        procedure writeToParcel(dest: JParcel; flags: Integer); cdecl;
      end;
          
      TJNetworkCapabilities = class(TJavaGenericImport<JNetworkCapabilitiesClass, JNetworkCapabilities>) end;
     

    вместе с троеточиями = 70 строк и всё это в файле Androidapi.JNI.Net.pas. На картинке мы видим то, чем богат интерфейс JObject-а JNetworkCapabilities, а вот как (объясните, пожалуйста, чайнику) вытащить свойства из интерфейса JNetworkCapabilitiesClass?

    З.Ы. И на закуску (мож не по теме) - чем отличается конструкция:

          NetworkSpecifierObj:= TAndroidHelper.Context.getSystemService(TJContext.JavaClass.CONNECTIVITY_SERVICE);
          NetworkSpecifier:= TJNetworkSpecifier.Wrap((NetworkSpecifierObj as ILocalObject).GetObjectID);

    от

          NetworkSpecifier:= TJNetworkSpecifier.Create;

    Заранее благодарен.

    З.Ы. З.Ы. Среда - Delphi 10.4.2

  18. 6 часов назад, krapotkin сказал:

    А отладчик в 10.3/4 и под Windows очень необычно себя ведет. Но вроде работает.

    да отладчик-то - фиг ли с ним, но прога не работает - не видит точки доступа...

    6 часов назад, krapotkin сказал:

    либо нет

    по-видимому другой альтернативы нет и придётся грызть ASовскую Яву

  19. Прошу прощения за отлучку - "... дела, заботы, занятость...": точнее - Big Surом занимался...

    В 27.02.2021 в 19:19, UFO 007 сказал:

    коннекта с железяками нет

    это "говорит" прога, а если глянуть /Настройки/ВайВай, то там подключено к нужной железяке - оказывается, что (грешу на то, что после Формата Ц) перестала работать конструкция:

    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('Нет доступа к менеджеру подключений');
    end;
    
    function IsWiFiConnected: Boolean;
    var
      ConnectivityManager: JConnectivityManager;
      WiFiNetwork: JNetworkInfo;
    begin
      ConnectivityManager := GetConnectivityManager;
      WiFiNetwork := ConnectivityManager.getNetworkInfo(TJConnectivityManager.JavaClass.TYPE_WIFI);
      Result := WiFiNetwork.IsConnected;
    end;
    
    Function TForm1.SendMsg(Msg: string): string;
    Begin
      Try
        if not IsWiFiConnected then
        Begin
          Showmessage('Связь с Комплексом отсутствует'+#13+#10+Msg);
          scansensors:= true;
          btMonitorClick(SELF);
        End
        else
        Begin
          Form1.IdUDPClient1.SEnd(Msg, IndyTextEncoding(encIndyDefault)); //отправка сообщени¤ в сеть
          Result:= Form1.IdUDPClient1.ReceiveString(-1, IndyTextEncoding(encUTF8));
        End;
        if Msg<>'Get_Status' then
        MyShwMsg('От Комплекса принято: '+Result);
      except
        on E: EJNIException do
        Begin
          MyShwMsg('Произошла ошибка класса: '+e.ExceptionClassName+#13+#10+'с сообщением: '+e.Message);
        End;
      End;
    End;

    вернее - стала возвращать: "Связь с Комплексом отсутствует"... Что - по новой форматить/ресетапить винду?

    В 02.03.2021 в 12:36, krapotkin сказал:

    обрезанные какие-то, либо полные вместе c AS

    пардон, конечно, но Ваша горячо любимая AS напрочь забыла скачать папку e:\0_Android\StudioSDK\ndk\22.0.7026061\platforms

    В 04.03.2021 в 08:30, krapotkin сказал:

    технология-то сырая

    оно-то конечно, ежели что - так, ведь теперича - не то, что давеча... Однако под ХЕ8-ой всё взлетает в диапазоне SDK-16..SDK-30 (НДК - правда надо подбирать поближе, а то связка SDK-30/NDK-r10e (или наоборот [щас не помню] - SDK-16/NDK-r22) - не взлетела...) А что касабельно Рио (10.3.3) - тут засада ПОЛНАЯ:

    Rio_Debug.png.79f7532390b34cc48f01d1528318036c.png

    от точки останова до голубой стрелки - 2 нажатия F8: т. е. отладчик на строку цикла даже не заглядывает (бред какой-то) хоть Вайл, хоть Фор (к стати фиг. скобками заREMировано то, что под ХЕ8 (аж до Луны) летает...). А по сему - на счёт "сырой технологии" я с Вами не совсем (точнее: совсем не) согласен... Вот такой-вот сыр-бор... И чё делать? Ведь ХЕ8 под х64 компилить не умеет, а Рио - тупит... 

  20. Доброго всем времени суток!

    Имею следующее:

    big_sur.thumb.png.9f8e54bf3de4ee5c6d4e991028529616.png

    Яndex по поводу 'изящно закрытого соединения' говорит, что это - не ошибка, а просто "та сторона" (в данном случае Big Sur) неожиданно (для Делфи) его закрыла. А предыстория такая: начитался, накачался, установился/распаковался и вперёд... Благо - paserver.pkg прямо drag-and-dropом прямо из винкомандёра на рабочий стол БигСура скопировался, там установился и... результат - на картинке... и только потом вычитал, что сначала надо обновить систему и ХКоде до последней версии и, как вариант, этот образ в мусорку - распаковал по-новой, обновил, установил XCode и (О, Чудо!!!) увидел АйПад симулятора - вот только не помню в какой момент в терминале ПаСервера выскочила ошибка 231: когда прогрессбар под яблоком ещё "тикал" или когда уже появился рабочий стол... И по ходу немыслимых эксКриментов дело дошло до "Формат Ц" (с ресетапом винды), но "... воз и ныне там ...".

     

    Как побороть эту ошибку (231)??? Печёнкой чую, что где-то есть *.log в котором чёрным по белому "до безобразия разжёвано" что (и где) за фигня происходит... Вот только где этот *.лог искать? Покопался в папке /Users/admin/PAServer и Финдером, и Оне Коммандером, но ничё похожего не нашёл... Какие будут предложения/замечания/.../нравоучения?

     

    ЗаРанее благодарен

  21. В 26.02.2021 в 05:30, Slym сказал:

    все кишки с евентами и синхронизами спрятаны

    "... Не будет ли любезен многоуважаемый джин ..." перевести это на Паскаль, ну или учебно-тренировочный *.pas (без бизнес-логики) приаттачить. 

     

    Спаибо.

  22. 14 часов назад, krapotkin сказал:

    /NDK тех версий, которые нужны нам

    А вот отсюда поподробней... Нашёл только NDK (Side by side) версия 22.0.7026061 (revision: 22.0.7026061) - щас качается... А вообще-то чуть ранее наяндексил android-ndk-r22-windows-x86_64.zip (с сайта разработчика, а r23 - пока beta) - разница какая-нить есть? = нету: AS качает тот же zip... И где бы посмотреть табличку соответствия СДКтакой-то = НДКтакой-то? Потому что разница между android-23 скачанным Delphi и AS СДК-манагерами составляет всего-то 1 файл (красный):wcmd.png.0de29ece72c928e1b98892bcc8d31c3a.png

    и как результат - разницы нет абсолютно никакой откуда я прописываю в Тулс\Опшенс\Деплоймент\СДК Манагер... А вот про таблицу соответствия спросил я не зря: если компилить нативной для ХЕ8 НДК-r9c (СДК - соответственно: 23, а не дефолтным 21), то (тут уже прогресс) всё пучком и РедМи даже "видит" железяки - правда подключиться не может. А если прописать НДК-22, то получаю Errors 1053(шт) с сообщением:

    [DCC Error] E2597 C:\Program Files (x86)\Embarcadero\Studio\16.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.8\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: error: cannot find -lgnustl_static
      E:\0_ESP_12\PAKUOS_xe8\Android\Debug\Grijjy.ErrorReporting.o:Grijjy.ErrorReporting:function Grijjy::Errorreporting::cxa_demangle(char const*, char*, NativeInt, int&): error: undefined reference to '__cxa_demangle'
    [DCC Fatal Error] F2588 Linker error code: 1 ($00000001)

    Как со всем этим разобраться? Заранее благодарен

    и

    З.Ы. Уму не растяжимо: (из Предисловия) с месяц назад поставил ХЕ5 попробовал - получил (щас уже не помню какую) "палку в колёса", снёс, поставил ХЕ8, набросал (благодаря Вашим исходникам с ГитХаба) скелет, одел его в симпатичный пиджак и, не подозревая о существовании СДК/НДК, "компильнул" его в РедМи и всё работало ОК: и обнаруживал железяки, и подключался к ним, и рулил ими как задумывалось, но Хонор это же самое делать отказался... И давай копать в сторону СДК/НДК... Ну, а в порьбе за светлое будущее - чем дальше в лес: тем толще партизаны...

  23. 13 часов назад, krapotkin сказал:

    скачать и поставить

    Глубоко сУмЛеваюсь (на счёт скачать) - это в .7z(ip) архивах стандартной комплектации идёт... А на счёт "... записываю ..." - эт только в долгом и нудном ISO может отражается, а lSuper их не подписывает... Скачал и поставил AS, но там только СДК-30 (Адрюха-11)... Надо разбираться как через AS СДК-23 выкопать...

  24. В 28.02.2021 в 14:46, krapotkin сказал:

    Просто без AS нет SDK manager

    А как на счёт c:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\SDK Manager.exe?

     

    В 28.02.2021 в 14:46, krapotkin сказал:

    предлагает установить кое-что, с чем точно умеет работать

    Когда, где и как?... Переустановить - не вопрос: главное - отловить этот момент.

     

    В 28.02.2021 в 14:46, krapotkin сказал:

    (запоминаем, что там Delphi хотела поставить)

    Установить AS - тоже не вопрос: главное - понять что именно она "... хотела поставить ..."

    Спс.

×
×
  • Создать...