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

Лидеры

  1. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      12

    • Постов

      2 124


  2. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      9

    • Постов

      2 517


  3. Error

    Error

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


    • Баллы

      9

    • Постов

      167


  4. kami

    kami

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


    • Баллы

      5

    • Постов

      643


Популярный контент

Показан контент с высокой репутацией 30.11.2016 во всех областях

  1. Error

    Сходка в Питере

    Равиль Зарипов предложил отличную мысль - устроить сходку дельфистов в Питере, посидеть где-нибудь, пообщаться Собственно, кому интересно, отпишитесь в комментариях, можно будет в декабре устроить встречу Думаю надо хотябы 5-6 человек.
    7 баллов
  2. Добрый день, На андроиде в принципе не поддерживаются синхронные диалоги. И причина прежде всего в архитектуре андроид приложения. Если говорить о нативном приложении, то оно состоит из двух потоков Java UI Thread (Он же главный поток приложения) и Delphi Thread. FireMonkey работает в делфи треде. В то время, как все нативные вещи (диалоги, пикеры, браузеры, карты, медиа проигрыватели и тд) все они работают в Java UI Thread. Помимо этого, когда активити (работает в так же в java UI thread) меняет своё состояние (запущена, приостановлена, остановлена, возобновлена и тд), она должна синхронизировать это состояние в делфи треде. Или другими словами передать эту информацию в делфи тред. Для передачи используются пайпы с событиями. Поэтому пока делфи тред не прочитает новое состояние активити, Java UI thread будет находится в режиме ожидания. Чтение в делфи потока нового состояния происходит в цикле ProcessMessage. Теперь возвращаясь к диалогам. Диалоги нативные, поэтому они должны быть синхронизированы (с ожиданием) с java UI thread. С другой стороны, в момент отображения диалога происходит событие из java ui thread Window Gained Focus, возникающее, когда в приложении меняется фокус между окнами (диалоговое окно в данном случае перехватывает фокус). Но как мы выяснили, это приводит к обратной синхронизации с делфи тредом. Отсюда возникает классический deadlock. P.S. Это верно до версии Берлин включительно.
    5 баллов
  3. Я вижу пока только два решения: Засунуть сразу в апк Сделать скачивание через инет. Можно еще предложить в самом предложении скачать пакет с аудио. Поскольку экскурсий может быть очень много, то файлов может быть так же очень много. Плюс не каждому нужны файлы ко всем экскурсиям. Поэтому я бы предложил скачиваем пустое приложение. А в нем предлагаем пользователю скачать те пакеты экскурсий, которые его интересуют. При наличии хорошего интернета.
    3 балла
  4. Дайте знать, когда, где...
    3 балла
  5. например вот так function getDeviceId: string; // uses // Androidapi.Jni.GraphicsContentViewText, Androidapi.JNIBridge, // Androidapi.Helpers, Androidapi.Jni.JavaTypes, // Androidapi.Jni.Provider, Androidapi.Jni.Telephony, // System.Hash; var androidID: string; deviceID: string; TelephoneServiceNative: JObject; TelMan: JTelephonyManager; begin androidID := JStringToString(TJSettings_Secure.JavaClass.getString(TAndroidHelper.Context.getContentResolver, TJSettings_Secure.JavaClass.ANDROID_ID)); TelephoneServiceNative := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE); if TelephoneServiceNative <> nil then begin TelMan := TJTelephonyManager.Wrap((TelephoneServiceNative as ILocalObject).GetObjectID); deviceID := JStringToString(TelMan.getDeviceId); end else deviceID := ''; Result := THashMD5.GetHashString(androidID + deviceID); end; UPDATE: не забываем про разрешение READ_PHONE_STATE
    2 балла
  6. //uses // AndroidApi.Helpers, AndroidApi.JNI.JavaTypes, AndroidApi.JNI.Provider; var deviceID: JString; begin deviceID := TJSettings_Secure.JavaClass.getString(TAndroidHelper.Context.getContentResolver, TJSettings_Secure.JavaClass.ANDROID_ID); ShowMessage(JStringToString(deviceID)); end;
    2 балла
  7. kami

    [ТBeacon] Реальная задача

    То есть - куда он пойдет гулять никто не знает? На любую из точек? В таком случае, имхо, есть смысл сделать как это делается в оффлайн-навигаторах: приложение скачивается отдельно, а карты (аудиофайлы в нашем случае) - отдельно, по желанию пользователя.
    2 балла
  8. kami

    [ТBeacon] Реальная задача

    Нет, окончательное решение должно быть Ваше Зачем? ноутбук + Connectify, все мобилки подключаются к 192.168.0.1 (адрес бука), на буке - простейший http-сервер на том же Delphi крутится сервисом. На get-запрос от приложения отдает в теле ответа аудиофайл. До начала экскурсии, в месте сбора. Можно даже сделать как "мобилка спрашивает - а куда сегодня пойдем", а сервер отвечает "пойдем туда-то, вот тебе файлы на сегодня", чтобы не перегружать пользователя лишними действиями. Все довольны, все смеются.
    2 балла
  9. можно сделать сервачок локальный. Переносной роутер к которому подключаются туристы и качают заранее аудио файлы. Разместить можно при желании даже в автобусе или в каком нить здании до начала экскурсии
    2 балла
  10. «Самое худшее, что может случиться с отзывчивостью вашего приложения это диалог "Приложение не отвечает" (ANR).» Здесь описан механизм работы с зависанием UI, и как с этим бороться. На русском пока нет, но, если нужно, гугл переводчик подскажет.
    2 балла
  11. 2 балла
  12. Brovin Yaroslav

    [ТBeacon] Реальная задача

    Я бы пошел третьим способом. Если, какая-то экскурсия очень важна. Зашил бы ее в апк.
    1 балл
  13. Legioner

    Сложности с трехвезнкой

    Всем спасибо, проблему решил сам, только не понял, что именно помогло, напишу последние действия: - Скачал libeay32.dll и ssleay32.dll (точнее использовал одни из скачанных до этого, ресурс не подскажу уже) - Закинул их в C:\Windows\System32 (по инструкции для 32-битной системы) и их же закинул в C:\Windows\SysWOW64 (по инструкции для 64-битной системы) - После этого зарегистрировал их через командную строку: cmd -> regsvr32 libeay32.dll -> enter -> перезагрузка После последнего действия вылетела ошибка о несовместимости системы и используемых библиотек, НО...все теперь работает как надо Пора вводить программирование как новую религию..иногда происходят чудеса похлеще походов по воде. Тему можно закрывать
    1 балл
  14. Error

    Сходка в Питере

    О, отлично, 3 человека уже готовы:)
    1 балл
  15. https://github.com/EmbarcaderoPublic/DelphiArcadeGames Не уверен, но вроде бы как, здесь сделано одновременное воспроизведение для разных платформ
    1 балл
  16. Ufomaster

    DropBox Rest

    Всем спасибо. Глюк в берлине без апдейта. В сиетле все работает отлично.
    1 балл
  17. Legioner

    Сложности с трехвезнкой

    Согласен, не пояснил все более открыто Библиотеки скачивал с различных ресурсов и закидывал в различные папки (системные папки и в папку проекта включительно) Даже добавлял в деплоймент (мало ли) К тому же ставил OpenSSL-Win32 и OpenSSL-Win64 (система 64-битная, приложение 32-битное) В общем перепробовал все советы всезнающего гугла Сообщение я прочитал и естественно загуглил на тот случай, если я что-то неправильно понял. После компиляции автоматически происходит исполнение (извините, если говорю что-то не так) Ко всему этому хочу добавить, столкнулся с данной проблемой только на Берлине. Да, можно вернуться на Сиетлл, но не хочу сдавать просто так (решение пригодится многим)
    1 балл
  18. Равиль Зарипов (ZuBy)

    DropBox Rest

    приходит кодировка которую не ждут
    1 балл
  19. Теоретически басс будет надежнее - т.к. опыта у него больше. Но это не значит что МедиаПлеер вам не подойдет.
    1 балл
  20. Если писать в папку приложения TPath.GetDocumentsPath, то файлы автоматически удаляются при деинсталяции приложения
    1 балл
  21. kami

    Сложности с трехвезнкой

    Люди, помогите понять. Вот топикстартер - создает трехзвенку, работает с датаснап, mySQL, делает приложение под Андроид... то есть - довольно-таки сложные вещи. И не может прочитать сообщение об ошибке, путает компиляцию с исполнением ? о_О...
    1 балл
  22. ну так и вы не дали код, что у вас там происходит я незнаю. а там представлен шаблон с комментариями
    1 балл
  23. Немного переработан внешний вид. Теперь можно просматривать темы и посты с поддержкой форматирования. Добавлен пункт меню просмотр последних тем.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...