Перейти к содержанию
  • Регистрация

Активность

Лента обновляется автоматически     

  1. Вчера
  2. msp888

    Wifi Multicast packets

    Всем привет! У меня уже несколько лет работают приложения под Windows и под Andriod, в которых выполняется обмен данными по локальной сети по протоколу TCP-IP. Теперь вот мне понадобился прием multicast-пакетов по протоколу UDP. Под Windows всё работает замечательно, а вот под Android ничего принять не могу... Подскажите чего не хватает, или дайте ссылку на пример, где уже реализовано подобное... Вот выдержки из кода: // переменные FSocket:TSocket; FiAR:IAsyncResult; FasyncWE:TMultiWaitEvent; data:TBytes; res:TWaitResult; WifiLock: JWifiManager_WifiLock; MulticastLock: JWifiManager_MulticastLock; ... // регистрация в группе procedure AddMemberShip(MultiAddr, InterfaceAddr:Cardinal); var Mreq:ip_mreq; begin fillchar(Mreq, SizeOf(Mreq), 0); move(MultiAddr, Mreq.IMR_MultiAddr.S_addr, SizeOf(Mreq.IMR_MultiAddr.S_addr)); move(InterfaceAddr, Mreq.IMR_Interface.S_addr, SizeOf(Mreq.IMR_Interface.S_addr)); CheckSocketResult(setsocketoption(FSocket.Handle, IPPROTO_IP, IP_ADD_MEMBERSHIP, Mreq, SizeOf(Mreq)), 'setsockopt:IP_ADD_MEMBERSHIP'); end; ... // permission... ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION ACCESS_NETWORK_STATE ACCESS_WIFI_STATE CHANGE_CONFIGURATION CHANGE_NETWORK_STATE CHANGE_WIFI_MULTICAST_STATE CHANGE_WIFI_STATE INTERNET READ_CALENDAR READ_EXTERNAL_STORAGE WRITE_CALENDAR WRITE_EXTERNAL_STORAGE WAKE_LOCK ... // настройка wi-fi WifiLock.acquire; MulticastLock.acquire; ... // создание и настройка сокета FSocket:=TSocket.Create(TSocketType.UDP); FSocket.Bind(TNetEndpoint.Create(ServerIP, ServerPort)); AddMemberShip(TIPAddress.Create(239, 78, 1, 1).Addr.S_addr, ServerIP.Addr.S_addr); AddMemberShip(TIPAddress.Create(239, 78, 1, 2).Addr.S_addr, ServerIP.Addr.S_addr); AddMemberShip(TIPAddress.Create(239, 78, 1, 78).Addr.S_addr, ServerIP.Addr.S_addr); ... // Прием данных в потоке... FiAR:=FSocket.BeginReceiveFrom; FasyncWE:=FiAR.AsyncWaitEvent; res:=FasyncWE.WaitFor; if res = wrSignaled then data:=FSocket.EndReceiveBytesFrom(FiAR); // Прием
  3. Последняя неделя
  4. Примеры все перетыкал. Там выводится просто список тех устройств что схоронены, но те устройства что в текущий момент времени подключены не выводит
  5. Id_client Id выданный сервисом PUSH нотификации(и что такое центр нотификации компонент NotificationC: TNotificationCenter; Notification: TNotification; он получает сообщения от PUCH сервера и выводит количество сообщений на иконке приложения? ) прочитал статью http://blog.rzaripov.kz/2017/02/firebase-android-ios.html и 2 ую часть статьи, сделал под андроид Id это то что на закладке Cloud Messaging Идентификатор отправителя или что то другое пытаюсь к приложение подключить PUSH сообщения. С PUSH ни разу не сталкивался делаю приложение на Delphi FMX 10.1 android или надо ставить версию 10.3 RIO?
  6. А в примерах нет? Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\куча всего
  7. Что за ограничение? Можно же фильтр применять программно на TBitmap без использования компонента. TPerspectiveFilter.
  8. Да, этот эффект - TPerspectiveTransformEffect я и использовал, когда сделал первый вариант приложения. Но у этого способа есть некоторые недостатки: 1) Применяется этот эффект немного своеобразно - нужно приловчиться, прежде чем научиться подстраивать Image под нужные границы (приложение используется в качестве мэппинга на многопроекторных системах). 2) Есть ограничение на применение количества фильтров к одному визуальному элементу оформления. А хотелось бы, чтобы еще были какие-то переходы между изображениями, когда они меняются на экране. То есть это можно сделать, наверное, но уже с усложнением кода и добавлением каких-то вспомогательных объектов.
  9. Посмотрите среди примеров FMX есть использование эффектов. Там был пример с искажением картинки.
  10. Те версии, которые будут получены в ходе текущего бета тестирования, останутся у участников. И они могу продолжать ими пользоваться по окончании бета-тестов бесплатно. Возможно, я поблагодарю участников, выдав им бесплатную подписку на какое-то время. Но этот вопрос я еще не прорабатывал. И я к нему вернусь ближе к окончанию тестирования. Чтобы оценить результат работы и соответственно ему отблагодарить участников. Для остальных разработчиков (не участвующих в тестировании) для использования нужно будет приобретать лицензию. Исходные коды будут, но не все. Только кроссплатформенная часть, которая содержит объявление компонентов с описанием апи необходимая для разработки приложений. К сожалению, никак не могу прокомментировать вашу личностную оценку. Да и надеюсь, что вы не считаете меня всезнайкой. Не знаю, где вы такое нашли. Но FMX, как и любой другой продукт в той или иной степени не лишен программных ошибок. А значит над ними нужно работать и исправлять. И если бы вы обращали свое внимание не только на то, что пишется в чатах, а следили за изменения в FMX, то без особого труда заметили, что работа над FMX продолжается и даже более активнее, чем была года 2 назад. А значит работа ведется над улучшениями. Достаточно взглянуть на эту диаграмму (по количеству заведенных и исправленных проблем в Rad Studio в целом), сравнение количества исправленных проблем. Например, тут в целом видно, что по сравнению с 2017 годом в 2018 количество исправленных проблем стало почти в 2 с половиной раза больше. И это только публичная жира. А еще есть внутренняя, которая имеет свои репорты, которые в публичную часть не попадают. Поэтому фактически показатель еще лучше и надеюсь пользователи это замечают. Собственно говоря, эта фраза расставляет все точки над и.
  11. arr:=SA(JSON); for i:=0 to arr.length-1 do arr2:=arr.a[i];
  12. unit Unit9; interface uses System.JSON; procedure ReadData(const Data: string); implementation procedure ReadStatus(jsObject: TJSONObject); var ActivityId: Integer; ActivityName: string; begin ActivityId:=jsObject.GetValue<Integer>('statusactivity_id'); ActivityName:=jsObject.GetValue<string>('statusactivity_name'); end; procedure ReadStatusArray(jsArray: TJSONArray); var jsValue: TJSONValue; begin for jsValue in jsArray do ReadStatus(jsValue as TJSONObject); end; procedure ReadAnyArray(jsArray: TJSONArray); begin end; procedure ReadData(const Data: string); var jsArray: TJSONArray; begin jsArray:=TJSONObject.ParseJSONValue(Data) as TJSONArray; try ReadStatusArray(jsArray.Items[0] as TJSONArray); ReadAnyArray(jsArray.Items[1] as TJSONArray); ReadAnyArray(jsArray.Items[2] as TJSONArray); ReadAnyArray(jsArray.Items[3] as TJSONArray); finally jsArray.Free; end; end; end.
  13. У меня тоже ошибка только код 3, ты меня натолкнул на мысль что может и у меня также как у тя, и действительно. Чтобы проверить на реальном устройстве не загружайте приложение через Android Studio, попробуйте вручную перекинуть apk файл и проверить. Тебе спасибо. А я дурак на трех телефонах тестировал и все через AS кидал)
  14. TWebBrowser? даже не знаю как это.. да и не факт что раньше работало Тоже самое, как в value А Вот ЭТО сработало! Спасибо! +
  15. или вот так document.getElementById('PR_FIO').setAttribute('value','test');
  16. Как вариант попробовать вместо Value использовать innerHTML
  17. а если обновить WebView или наоборот более старый поставить?
  18. Приветствую, обнаружил досадную особенность при работе TWebBrowser в Андроид Есть браузер - WBWrite, на нем страница html открывается с сайта с формой записи, есть поле id = PR_FIO Сделал кнопку, на клик повесил WBWrite.EvaluateJavaScript('var el = document.getElementById(''PR_FIO''); el.value = ''test'';'); в WIN - все четко работает, в Андроид вся форма стирается, остается только надпись test. элемент находится , если вместо "test" я ставлю el - то в в поле ввода - [object Html Input Element]
  19. Ещё раньше
  20. а после тестов надо будет покупать ее? исходники в бете будут?
  21. Всем спасибо. Не знаю в чем была причина но через неделю попробовал опять выложить всё получилось.
  22. Вот и наступило лето, а вместе с ним и закрытое бета-тестирование библиотеки FGX Native, которое будет проводиться среди участников из стран СНГ. В процессе бета-тестирования будет проведена большая работа, и это займет много моего времени. В связи с этим, среди кандидатов, подавших заявку, будет произведен отбор на основании их профессионального уровня, технической подкованности и т.д. Наличие готового проекта для портирования (или полноценной идеи для будущего приложения) будет большим плюсом при принятии положительного решения по вашей кандидатуре. Я прошу вас максимально честно отвечать на вопросы – это поможет сократить сроки проведения тестирования и приблизит долгожданный полноценный релиз. Цели и задачи бета-тестирования: Повышение общего качества библиотеки; Определение степени удобства и очевидности использования существующего функционала с целью дальнейшего улучшения; Создание реальных (в том числе и коммерческих) проектов, основанных на библиотеке; Выявление приоритетных направлений по расширению компонентной базы; Получение обратной связи; Осуществление приоритетной технической поддержки для решения проблем. Бета тестирование - это хорошая возможность попробовать реализовать свои идеи, мигрировать небольшие существующие FMX проекты и в живую оценить достоинства и недостатки библиотеки. Всем участникам закрытого бета теста будет выдана лицензия на весь период тестирования для разработки любых проектов с использованием библиотеки. Кандидаты, прошедшие отбор, получат письма с дальнейшими инструкциями. Анкета доступна по адресу: https://forms.gle/hTVrF5oXEobWCNMR8 Всем хороших рабочей недели!
  23. функция возвращает указатель на созданный маркер храните его захотите - удалите для создания маркера вы лично передаете координаты для создания так что что их получать?
  24. Частая ошибка. Зайдите в настройки профиля в IDE. Там где прописаны Фреймворки. Нажмите "добавить". Пропишите в поле Имя фреймворка - последнее имя из ошибки. У Вас это "DocumentManager". IDE автоматом скачает нужный фреймфорк из Xcode. Повторите столько раз сколько вылезет ошибка. Если не поймете - поищите на сайте Ембаркадеро как добавлять фреймфорки.
  25. Ребят подскажите только начал работать с эти компонентам TMapView разобрался как ставить маркеры а как их удалять? и как получить координы куда ткнул маркер?
  1. Загрузить ещё активность
×
×
  • Создать...