Вся активность

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

  1. Последний час
  2. Сегодня
  3. Для того, чтобы при нажатии на уведомление оно автоматически исчезало из StatusBar при его создании необходимо добавлять флаг: localBuilder.setAutoCancel(true); В библиотеке fmx.jar этот код отсутствует (package com.embarcadero.rtl.notifications, public class NotificationPublisher). У меня есть перекомпиленная библиотека для Seattle. Изменение библиотек выполняется таким же образом, как и создание своих всем известным методов через .bat файл.
  4. Если верить интернету, то в Windows создание потоков и синхронизация с основным потоком довольно "трудозатратая" операция. Для Windows я торможу поток dwStatus := WaitForSingleObject( Parms.fvEventUSB, INFINITE ); Когда надо запустить поток устанавливаю Event, данные из потока скидываю в потокобезопасный буффер и сообщаю об окончании обработки данных установкой другого Event.
  5. Спасибо, но уже не успею с этим разобраться, нужно уже сегодня сдавать. Чувствую не зря он там закомментирован.
  6. Кто просил PHP код, для отправки пушей, без лимита на 1000 токенов за одну отправку. Вот готовый вариант: <?php $server_key = 'AAAAnCw-yKA:APA91bEYphFbq_w...'; $title = 'Title'; $text = 'test'; $limit = 999; $field_name = 'DeviceToken'; $sql = mysqli_connect("mysqlserver.com", "DBName", "DBPassword"); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $offset = 0; while (true) { $query = "SELECT $field_name FROM `DBName`.`TableName` LIMIT $limit OFFSET $offset"; $result = mysqli_query($sql, $query); if (!$result) { die('Invalid query: ' . mysql_error()); } if (mysqli_num_rows($result) == 0) { echo "{\"result\":true}"; exit; } $arr = array(); while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) { $arr[] = $row["$field_name"]; } pushSend($title, $text, $arr, $server_key); $offset = $offset + $limit; /* free result set */ mysqli_free_result($result); // foreach($arr as $item) { // echo $item, '<br>'; //} //echo '-----------<br>'; } mysqli_close($sql); // max 1000 function pushSend($title, $text, $tokens, $server_key) { $url = 'https://fcm.googleapis.com/fcm/send'; $headers = array('Authorization: key=' . $server_key, 'Content-Type: application/json'); if (is_array($tokens)) $fields['registration_ids'] = $tokens; else $fields['registration_ids'] = array($tokens); $fields['priority'] = 'high'; $fields['notification'] = array('body' => $text, 'title' => $title); $fields['data'] = array('message' => $text, 'title' => $title); $ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_URL => $url, CURLOPT_POST => true, CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_POSTFIELDS => json_encode($fields) )); $result = curl_exec($ch); curl_close($ch); return $result; } ?>
  7. ENERGY Для получения всех активных уведомлений в Android существует метод: getActiveNotifications added in API level 23 StatusBarNotification[] getActiveNotifications () FMX (Berlin и ниже точно, Tokyo не смотрел) не предоставляет доступ к этому методу, в исходниках (Androidapi.JNI.App.pas) он закомментирован. Возможно при использовании своего wrapper для класса JNotificationManager или отсюда можно получить доступ к требуемому функционалу.
  8. Но из другой своей программы я удаленно спокойно работаю c этого же компьютера с этой же базой, но через ADOConnect компонент и ODBC - Provider=Microsoft.Jet.OLEDB.4.0
  9. Как прочитать все свои сообщения Push, если пришло больше одного сообщения, при старте программы? Дело в том, что код который на форуме популярен, показывает только одно сообщение, только то, которое выбрано. Пример: отправляю 3 сообщения, все 3 висят в статус баре, при загрузке программы показывает только то, по которому тапнули из статус бара, остальные игнорит. А мне нужно их все 3 сохранить. var vCurNotification : TPushServiceNotification; begin for vCurNotification in fPushService.StartupNotifications do begin OnReceiveNotificationEvent(Self, vCurNotification) end; end; Push сервис получаю так, как указано в статье Равиля: procedure TPushNotify.UpdateConnection; begin fPushService := nil; fPushServiceConnection := nil; {$IF defined(ANDROID)} fPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); fPushService.AppProps[TPushService.TAppPropNames.GCMAppID] := ServerSenderID; {$ENDIF} {$IF defined(IOS) AND defined(CPUARM)} fPushService := TPushServiceManager.Instance.GetServiceByName (TPushService.TServiceNames.APS); {$ENDIF} if Assigned(fPushService) then begin fPushServiceConnection := TPushServiceConnection.Create(FPushService); fPushServiceConnection.OnChange := OnServiceConnectionChange; fPushServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent; fPushServiceConnection.Active := true; end; end; ОК, выберем такое поведение - пусть юзер выбирает каждое сообщение, тапнув по нему в статус баре и читает его в программе. Я бы и так сделал, но тогда возникает проблема с очисткой в статус баре. Я так понял сообщения можно удалить только все (CancelAll) - т.е. юзер тапнул на одно сообщение, прочитал и затем программа очистила все остальные.. Вот в чем проблема. Странно почему нет нормального механизма..
  10. Я не утверждаю, что в Вашем случае - это решение вопроса. Я лишь констатирую факт того, что иногда, из-за некачественного кабеля могут возникать проблемы, которые никак не ассоциируются с кабелем (не запускается приложение, не деплоится и т.п.) У меня работает все при таких настройках
  11. То есть достаточно сменить кабель и программа всегда будет запускаться со среды? А зависания приложения и вылет программы в безобидных случаях? Мне кажется, у меня с настройками Java не гуд. Кто-нибудь может разместить скрин идеальных настроек для Delphi 10.1? Спасибо.
  12. Всем привет! Кто-нибудь может подсказать как можно удалить ссылку в проекте на неиспользуемую статичную либу, чтобы она не линковалась к исполняемому файлу? Обыскал всё в настройках проекта, так и не смог найти. Дело в том, что я как-то в FMX проекте использовал невизуальный VCL компонент, добавленный через дизайнер форм. Потом я его удалил, но линковщик всё равно линкует в exe-шник библиотеки типа vcl.lib, vclx.lib, что абсолютно напрасно увеличивает размер исполняемого файла.
  13. Отмечу, что сталкивался с такой проблемой - То работает запуск приложения на смартфоне, то не работает, то странности возникают еще при деплоее на смартфон... В общем скажу просто - проблема была в кабеле. Самое интересное, что при подключении смартфон "виделся", и вроде бы все ок, но постоянные глюки при запуске приложения привели к одному решению - смена кабеля и все заработало. Не скажу, что это панацея, но я в своей практике уже трижды сталкивался с подобным. Кабель может работать на подзарядке, и даже при работе с устройством в плане чтения и записи фалов, через проводник, но будет "глючить" при более "тонкой" работе.
  14. Первый и обязательный шаг: Любой String в С++ Builder должен предворятся литерой L. String URL = L" http://www.domofonkg.com...."; Если этот первый пункт не работает, то двигаться дальше в поиске проблемы...
  15. ищите и отключайте фаерволлы документация по TNetHttpClient вполне обширна
  16. нет. Я и говорю может в студии или проекте что-то не подключил.
  17. Вчера
  18. вопрос повторный. другие сайты грузит?
  19. не думаю, что тормоза в создании потоков по сути, эта операция - одна из основных в ОС, поэтому должна выполняться довольно быстро
  20. @krapotkin TNotificationCenter.Create(nil).CancelAll; Это же утечка памяти. Надо уничтожать объект. Хотя по идее нет, в ARC компиляторах он должен сам уничтожится.
  21. Интересная идея насчет interlocked. Буду пробовать. Спасибо.
  22. А точно нужно дожидаться, пока все потоки отработают? Это не асинхронные задачи? В качестве еще одного варианта - воспользуйтесь interlocked-функциями. Главный поток определяет, сколько вторичных потоков он запустит. И выставляет нужное значение в integer-переменной. Каждый поток, завершив виток просчета вызывает InterlockedDecrement(ThreadCounter); При достижении нуля - из последнего вторичного потока вызывается TThread.Queue для сообщения главному потоку "все просчеты завершены". Ну и - потоки входят в спячку, например - на ожидании TEvent. А получив очередную порцию данных для просчета - выходят из ожидания события. Даже лучше не так: каждый поток при запуске делает InterlockedIncrement(ThreadCounter), не стоит главному потоку выставлять начальное значение, хватит с него и запуска вторичных потоков. А вот всё остальное - да, остается в силе.
  23. Спасибо, но возможно это подходит для "одноразовых задач" - когда нужен один проход потоков, потому что иначе приходится каждый раз после отрисовки создавать потоки заново, из-за этого теряется производительность (я писал об этом в первом посте). Было бы лучше, если всю конструкцию можно было поместить в бесконечный цикл, не прерывая потоков.
  24. Если Windows - то это WaitForMultipleObjects в остальных случаях - см. TTask.WaitForAll
  25. Антивирус уже отключал. При выполнении программы она подвисает, а потом выдает где-то через минуту: First chance exception at $75FDC41F. Exception class ENetHTTPClientException with message 'Error sending data: (12002) Время ожидания операции истекло'. Process Project3.exe (8392)
  26. Возможно в файле манифеста нужно дописать android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
  1. Загрузить больше активности