Kitty

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

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

  • Посещение

  • Days Won

    16

Все публикации пользователя Kitty

  1. Хорошо бы видео урок о покупке сертификата и сборке стенда для проекта Hello Word в iOS. Мне помог родственник, самой трудно было победить инструкции apple.
  2. Эта строка ни причем. Судя по ошибке, где-то ошибка в коде в синтаксе, например, пропущена где то точка с запятой ;
  3. #include <System.IniFiles.hpp> #include <System.IOUtils.hpp> #include <memory> //**** #ifdef __ANDROID__ String path = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetSharedDownloadsPath(), L"options.ini"); #elif _Windows String path = System::Ioutils::TPath::Combine(ExtractFilePath(ParamStr(0)), L"options.ini"); #endif if(FileExists(path)) { std::unique_ptr<TIniFile> FileINI(new TIniFile(path)); String ip = FileINI->ReadString(L"HOST", L"ip", L"127.0.0.1"); //**** 1. std::unique_ptr используется чтобы избавиться от delete. std::unique_ptr все делает сам. 2. Файл ini для Андроида надо сохранить в UTF-8.
  4. Я использую TMediaPlayer для воспроизведения видео по кругу и плюс в таймере необходим запуск разных видео файлов по расписанию. Выяснилось следующее - если использовать для запуска нового файла такой код, то периодически программа вываливается из памяти: //в таймере запуск видео с другим именем MediaPlayer1->Stop(); MediaPlayer1->FileName = name; //другой файл MediaPlayer1->Play(); А если запускать новый файл в TMediaPlayer так, то вроде работает и программа не вываливается: //в таймере запуск видео с другим именем MediaPlayer1->Stop(); MediaPlayer1->Clear();//вроде помогло, но надежно ли? MediaPlayer1->FileName = name; MediaPlayer1->Play(); Достаточно ли строки MediaPlayer1->Clear(); чтобы предотвратить возможное вываливание программы из памяти в будущем?
  5. Я за ветку форума здесь с названием Флудильня (или еще как) помимо телеграмма. Конкретно на этом форуме отдельный раздел... Очень его не хватает... Пусть туда флуд сыпется... Опыт показывает, что в таком разделе самородки (или вкрапления золота ) маленькие всегда находятся... и решают вопросы... Изначально Ярослав очень строго организовал форум и это правильно, но мы все скатываемся рано или поздно во флудильню, устроен так человек... Такой раздел нужен на форуме для таких как мы..., а нас не опытных большинство. Ну это модераторам решать.
  6. Вообще то Инга моя сестра, а что есть ответы на вопросы которые поднимались 500 раз? Нет, ответов нет.
  7. Пуш приходит и в андроид 4.4 и в андроид 6. Если же приложение полностью выгрузить из памяти, то пуш приходит только в андроид 4.4. Почему при таких условиях пуш не приходит в андроид 6?
  8. Спасибо. Не до конца понятно... Несколько разных мнений и рекомендаций... Можно показать на паскале единственно правильное решение для службы андроида, где делаеться отсечка времени в 60 минут для сработки события. Спасибо.
  9. Появилась статья рассказывающая как подключить сервис для Андроида созданного на паскале к приложению созданному в С++ Builder. Сервис естественно на паскале, хотелось бы сразу правильно начать его модернизировать, а то много времени приходиться тратить на понимание синтаксиса. Опыта создания сервисов для Андроида нет, поэтому возник вопрос... Есть стандартный пример нужного сервиса, который я подключаю к своему приложению: C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\AndroidBeaconServiceDemo В сервисе есть процедура, которая срабатывает когда устройство входит в зону действия маячка beacon: procedure TBeaconServiceDM.Beacon1BeaconEnter(const Sender: TObject; const ABeacon: IBeacon; const CurrentBeaconList: TBeaconList); Я хочу, чтобы эта процедура если сработала, то следующее ее срабатывание стало бы возможно только через 60 минут. Для этой цели планирую завести, в этом сервисе на паскале, глобальную переменную bool и менять ее в таймере. Вопрос такой – правильно ли использовать в сервисе для Андроид компонент TTimer и вообще правильный ли мой подход? Если нет, то как правильно для Андроид сервиса? Спасибо.
  10. Вспомнила, что об этом уже говорил master webs: http://fire-monkey.ru/topic/2734-вызов-приложения-из-нофитикейшена/?do=findComment&comment=17497 Просьба проголосовать ибо это касается дельфи, а телефонов с андроид 4.4 много у пользователей: https://quality.embarcadero.com/browse/RSP-18117 Возможно не работает и версии Андроид 5, но такого устройства под рукой нет, чтобы проверить...
  11. Есть маячок бикон iBKS 105. Любое приложение скаченное с Google Play по определению маячков прекрасно его определяет. Пытаюсь использовать стандартный пример с сервисом, и открываю его в Дельфи: C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\AndroidBeaconServiceDemo Успешная компиляция в Дельфи и запуск на планшете Андроид 4.4, однако это приложение не определяет мой бикон. Приложения с Google Play его определяют без проблем. Подскажите, пожалуйста, в чем может быть проблема и куда копать?
  12. push

    Теперь вроде понятно про разбиение строк, помогло наблюдение... Переноса строк нет если в шторке присутствуют уведомления от других приложений. Если уведомление в штока одно, то есть перенос строк. Это на моём устройстве.
  13. Нажимаю кнопку для открытия формы с TWebBrowser: FormWEB = new TFormWEB(this); FormWEB->WebBrowser1->Navigate(L"http://моя ссылка"); FormWEB->Show(); Вижу в метке слово Загрузка, а когда страница загружена метка становиться пустой. Все нормально. Если уже в открытой странице в окне TWebBrowser есть гиперссылка и нажать на нее, то в метке уже не наблюдается слово Загрузка. Как при нажатии ссылки в самом TWebBrowser, показать в метке процесс загрузки? void __fastcall TFormWEB::WebBrowser1DidFinishLoad(TObject *ASender) { Label1->Text = L""; } //--------------------------------------------------------------------------- void __fastcall TFormWEB::FormShow(TObject *Sender) { Label1->Text = L"Загрузка..."; } //--------------------------------------------------------------------------- void __fastcall TFormWEB::WebBrowser1DidStartLoad(TObject *ASender) { Label1->Text = L"Загрузка..."; }
  14. Может на этом форуме найдется специалист по PHP чтобы снять ограничение на 1000 устройств? Просто тут многие занимались пушами. Евгений Корепов, предлагал свой вариант, но как его адаптировать и правильно интегрировать в сервер из блога Равиля? function SendGCMMessagesPacket($apiKey, $DevicesTokenArray, $message, $title, $DBLink, $TableName, $MyLog_GCM_file) { if (count($DevicesTokenArray)==0) { MyLog($MyLog_GCM_file, "Count Devices Token Array is 0, skip sending"); return(0); } $Count_Success = 0; $DeviceCountMax = 1000; $DeviceCountIndex = 0; $DevicesTokenPacketArray = array(); $gcpm = new GCMPushMessage($apiKey); while ($DeviceCountIndex<=count($DevicesTokenArray)) { $DevicesTokenPacketArray = array_slice($DevicesTokenArray, $DeviceCountIndex, $DeviceCountMax); MyLog($MyLog_GCM_file, "Packet send: start index $DeviceCountIndex, count ".count($DevicesTokenPacketArray)); $gcpm->setDevices($DevicesTokenPacketArray); $ResponceJSON = $gcpm->send($message, array('title' => $title)); $Count_Success = $Count_Success + AnalyzeResponse($DevicesTokenPacketArray, $ResponceJSON, $DBLink, $TableName, $MyLog_GCM_file); MyLog($MyLog_GCM_file, $ResponceJSON); $DeviceCountIndex = $DeviceCountIndex + $DeviceCountMax; // sleep(1); } return($Count_Success); }
  15. push

    Это какая-то не стабильность... Сейчас пришло как положено с разбиением строк и правильным заголовком. Никаких изменений в коде не делалось...
  16. push

    С чем может быть связано, что не с того ни с сего перестал работать перенос строк в пуше в андроиде? ***method=sendPush&title=Микрос&text=Текст текст текст текст текст текст текст Причем вчера работало как надо. Также периодически игнорируется заголовок и пишется вместо него название приложения. На что обратить внимание? Спасибо.
  17. Просьба проголосовать: https://quality.embarcadero.com/browse/RSP-17939 Спасибо.
  18. В iOS проекте Project > Options > Entitlement List нет Receive Push Notification. Может нужен какой-то доп. ключ добавить в Version info проекта? Спасибо.
  19. Вроде все верно. Наверное что-то еще упустила...
  20. Вроде все сделал как надо. Тестирую на стенде где было собрано давно нормальное приложение. Теперь добавляю приложение с пушами... и не работает... Теперь или баг С++ Builder или моя тупость при работе с ios...
  21. А зачем? Все работает и на С++. Был баг. Его решили. Равиль помог определить и суппорт быстро решил. А что в делфи багов нет? Из-за бага менять язык? Нет.
  22. И снова наш любимый ios для домохозяек...:) Нормально запустить дебаг не получается так как все время: Session ended Однако с помощью лейбл имеем такое: FDeviceToken = FPushService->DeviceTokenValue[TPushService_TDeviceTokenNames_DeviceToken]; //добавлено для теста Label1->Text = L"Что тут? " + FDeviceToken; и видим что FDeviceToken пустой. Куда копать? Спасибо.
  23. В общем все нормально и заголовок и перенос текста работает. Видимо один раз был сбой, но это совсем не проблема. Спасибо за статью! Все работает и пуши живут теперь и в билдере. P.S. На будущее по возможности напишите понятную статью, а как обойти ограничение на 1000 пользователей. А так все работает. Только отменила ShowMessage(aText) на посылку Notification, а то два подряд ShowMessage не очень.
  24. А сейчас заголовок нормально пришел...
  25. Удалось разбить перенос строк в уведомлении. Однако теперь заголовок игнорируется и выводиться всегда название приложения. Так и должно быть? Спасибо.