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

tetronis

Пользователи
  • Публикаций

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

  • Посещение

Информация о tetronis

  • Звание
    Новичок
  1. С таймером разобрался, использую AndroidTimerSetInterval, сделал отсылку на брокер каждые 10 сек данные, но столкнулся с проблемой, сервис через время убивается, шлется какое-то время данные, а потом все, убивается и приложение и сервис...хоть и указано START_STICKY. А вы как-то реализовывали отсылку из приложения через сервис и обратно, данные MQTT?
  2. Да, функции я смотрел и пробовал использовать, но безуспешно, все виснет при запуске. Вообще разные сборки ведут себя по разному, при отсутствии изменений в коде, что очень странно. Пробовал так же вставить таймер и по нему проверять, подключен ли клиент, но опять же, даже не стартует сервис с таймером(узнал что таймеры не работают в сервисах, так что этот вопрос попробую решить). Думал может вы какой-то код реализовали и обошли грабли. Но про подключение я имел ввиду, что когда гаснет экран телефона/планшета, устройство выключает WiFi, и соответственно сервис отключается от MQTT брокера, а значит это нужно отлавливать и переподключаться. Не совсем понятен этот код if running = False then TTask.Run(MqttMonitor); Сам running нигде не меняет значение, кроме TDM.MqttMonitor; (running:=True;), а при каких условиях выставляется false?
  3. Еще вопрос, а как вы реализовали отслеживание, если отключится от брокера? или будет переподключаться сам? но у меня так не происходит и через время телефон отрубает WiFi и видимо происходит отключение, сообщения не приходят.
  4. Сори, разобрался, неправильно собирал приложение) все работает!
  5. Пробовал сделать приложение с сервисом, в самом приложении MQTT работает, а вот сервис запускается и останавливается, но не работает с MQTT, ни отсылает на брокер ни принимает. Я правильно понимаю, этот код принимает сообщения и выдает сообщение MyNotification? Procedure TDM.MqttMonitor; var MyNotification: TNotification; mess:Jclient_Message; Bytes: TJavaArray<Byte>; JS2: JString; begin running:=True; MyNotification := NotificationCenter1.CreateNotification; MyNotification.Title := 'Mqtt Service'; //заголовок while True do begin mess:=connection.receive; Bytes:=mess.getPayload; JS2:=TJString.JavaClass.init(bytes); MyNotification.AlertBody := (JStringToString(JS2));//текст MyNotification.EnableSound:=True; NotificationCenter1.PresentNotification(MyNotification); end; end; А при создании сервиса подписка на топик, который будет мониторится, верно? topic:=TJTopic.JavaClass.init(StringToJString('android'), TJQoS.JavaClass.AT_LEAST_ONCE);
  6. А можно ваш пример реализации приложения?
×
×
  • Создать...