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

Andrey Efimov

Модераторы
  • Постов

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

  • Победитель дней

    123

Весь контент Andrey Efimov

  1. Попробуйте через ADB. (adb.exe лежит в SDK - ...\platform-tools\adb.exe, запуск делаете через cmd) Раз всё включено, то должно работать. Также попробуйте использовать другой кабель/драйвера (лучше скачать с 4pda.ru, с темы "прошивки для вашего устройства", такие драйвера меня ещё не подводили). Ещё можно попробовать прописать в меню студии Run -> Parameters -> Parameters = -cleaninstall
  2. А через ADB? Пример: adb install Путь до приложения\приложение.apk и на всякий случай спрошу, режим разработчика и отладка, на устройстве точно включены?
  3. В Андроиде, почти всё можно сделать кастомным, подобные окошки делаются обычно кастомно, т.е. сами строите такое окошко.
  4. У меня всё сработало, внёс одно изменение (не считая изменений в путях sdk) Не правильно обновляется, потому что вы разместили класс в неправильной папке com.embarcadero\rtl\notifications\NotificationPublisher.class Должно быть com\embarcadero\rtl\notifications\NotificationPublisher.class и соответственно папка embarcadero должна лежать в папке com.
  5. А что происходит при использовании killBackgroundProcesses ? т.е. как меняется поведение?
  6. По ссылке же есть пример jar cvf TicTacToe.jar TicTacToe.class audio images TicTacToe.jar - это наш файл TicTacToe.class audio images - это файлы, которые будут помещены в jar\ p.s. или я вас опять неправильно понял...
  7. Как-то так Creating a JAR File, ещё вспомните про classes.dex, там промежуточно компилится jar файл, живой пример создания jar файла и использования команды из справки.
  8. Вот здесь, специально писал статью [Google Play] Публикация приложения в Google Play Ещё на форуме есть раздел Статьи и заметки, там статьи тоже упоминаются.
  9. В общем, копался тут в исходниках (по другому вопросу), а потом забрёл в семплы и ... iBeacon в сервисе возможен, как оказалось есть даже пример C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\AndroidBeaconServiceDemo. Видимо, вам остаётся только ждать, когда добавят сервисы в C++, либо попробовать переписать всё на Delphi.
  10. Я же писал, что приложение, рано или поздно будет убито. Для длительных операций только сервис! Есть несколько известных мне вариантов, заставить приложение (без сервиса) дольше висеть в памяти: 1) Приложение на переднем плане с отключением блокировки экрана (сна устройства) (Так пишут игры) 2) Вывести постоянный нотификейшен на устройстве, пока он весит, приоритет у приложения повышен По поводу ловли событий "бекона" в фоне или вообще не запущенном приложении. Попробуйте разобраться, как такое реализовано в библиотеке Android Beacon Library. Ап. Судя по всему, всё завязано на BroadcastReceiver и сервисах: <receiver android:name="org.altbeacon.beacon.startup.StartupBroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/> <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/> </intent-filter> </receiver> Зажимая кнопку, вы видите список последних запущенных приложений. Т.е. какие-то приложения могут работать и в фоне, в момент просмотра списка, а другие уже будут выгружены из памяти.
  11. chaplin.u@gmail.com, откройте любую книгу и изучите основы, для начала хотя бы по вашему вопросу. Почти в каждой книге есть пример работы с ProgressBar. А вы точно пробовали искать? Вот смотрите delphi ProgressBar по таймеру. Опять же в книгах есть примеры. Вы правы, цель форума - помогать новичкам, которые пытаются сделать что-то самостоятельно и у них что-то не получается, которые имеют хотя бы основные знания. Вам же, дали уже даже код, но вы не стали разбираться, читать описание компонентов с которыми хотите работать... Вывод - вы хотите получить готовое решение по вашему описанию, раздел Ищу подрядчика. p.s. Вопрос был решён, ещё в сообщении от krapotkin, тему закрываю.
  12. Понятно, что вы хотите. А что у вас не получается?
  13. Как вы этого добились (без использования сервисов)? Как вы проверяете, висит ли приложение в фоне или нет? Как вы проверяете, висит ли приложение в фоне или нет? так и должно быть, ведь вы заново запускаете приложение, происходит событие OnCreate Может я конечно чего-то не знаю, но судя по жизненному циклу приложения без службы, оно будет убито в любой момент, после того как его "свернули". Время, через которое будет убито приложение зависит уже от самой системы. Также в документации гугла написано про длительные операции, что рекомендуется запускать службу, тогда система правильно распределит ресурсы. Т.е. как только его свернули, происходят события "OnPause -> OnStop", а если посмотреть внимательно на таблицу событий(по приведённой ссылке), конкретно на столбец "Killable?", то станет ясно, что событие "OnStop" позволяет системе убить приложение. p.s. Вообще, это уже другая тема, т.к. текущая тема про нотификейшены. Автор, заведите лучше отдельную тему по жизненному циклу :).
  14. Постараюсь заняться этим вопросом, пока были планы на другую тему, но всё может измениться А вообще, я специально создал тему Какие статьи вы хотели бы видеть в блогах? для того, чтобы народ там оставлял темы. Пишу по мере настроения/возможности/времени/пр. ресурсов. Сами понимаете, написание полноценной статьи занимает много времени. К сожалению, я немного прогадал, думал, появятся ещё авторы, но...
  15. Попробуйте прописать сервисы в лоб. Открываем файл AndroidManifest.template.xml в проекте (не в сервисе) находим <%services%> заменяем на <service android:exported="false" android:name="com.embarcadero.services.MyService" android:label="MyService" /> Полностью пересобираем проект. p.s. У меня получилось так, лейбел прописался во всех манифестах.
  16. Ссылка: http://delphifmandroid.blogspot.ru/2016/06/google-play.html Автор: Андрей Ефимов Описание: В этой заметке я ответил на два самых частых вопроса: Как сделать, чтобы сертификат выбирался автоматически? Как выбрать сертификат по умолчанию? Как обновлять приложение в маркете?
  17. Andrey Efimov

    Geofencing

    Geofencing <> BeaconFence Geofencing - основана на вычислении примерного местоположения, используя вышки мобильных операторов. BeaconFence - предлагает сделать "вышки" самостоятельно, из Beacon маячков. p.s. Вот ваша тема по BeaconFence
  18. В общем, потестил малость, набросал приложение, сканирующее System32. Дано: 3181 файл (+1 новый для проверки) база с двумя одинаковыми таблицами (по два столбца(id, FileName) в каждой) Результаты: Проверка в цикле, каждый раз по запросу "SELECT * FROM tblFileName WHERE FileName = Имя файла", очень накладно получается примерно 4.8 сек. (4758мс) Проверка с созданием и заполнением временной таблицы и запросом типа такого "select * from `temp` where FileName not in (select FileName from `tblFileName`)", достаточно быстро - 0.4 сек (437мс) Ваш способ - примерно 2.2 сек. (2168мс) Важно заметить, что во втором случае, время замерялось на две задачи, заполнение временной таблицы и сравнение, посредством одного запроса в бд. В первом же случае, данные сразу сравнивались, т.е. замерялся цикл запросов(3181 шт.) на выборку. Выбор очевиден Не знаю, что мне взбрело в голову в предыдущем сообщении...))) По поводу Limit, это ключевое слово позволяет не только ограничивать количество выбираемых данных, но и делать выборку блоками, например по 500 записей за раз (select FileName from `tblFileName` LIMIT 1,500), подошло бы, если бы нужно было извлекать блоками по 500 записей. вот такой запрос: FDQuery2.SQL.Clear; FDQuery2.SQL.Add('SELECT * FROM tblFileName'); FDQuery2.Active := True; FDQuery2.Open; if not FDQuery2.IsEmpty then begin FDQuery2.Last; mLogs.Lines.Add('Всего записей: ' + FDQuery2.RecordCount.ToString); mLogs.Lines.Add('ID последней записи: ' + FDQuery2.FieldByName('ID').AsString); end; FDQuery2.Close; Работает без проблем, извлекает сразу все записи. p.s. Тесты проходили на Windows 7 Pro.
  19. Заметка основана на официальной документации System.IOUtils.TPath.GetDocumentsPath. Ну, это уже особенности устройства... может там рут права стояли? интересно, что за устройство...
  20. Название: WiFi Info Платформа: Android 4.1.2 или более поздняя Тип устройства: смартфон, планшет Актуальная версия: 1.1.0 Ссылка: Google Play Описание: Приложение позволяет просматривать полную информацию об активном подключении, сканировать Wi-Fi точки и просматривать информацию о них, а также просматривать информацию о конфигурациях для сохранённых точек доступа. Есть возможность настроить автоматическое обновление информации. Поддержка Android 4.1.2 и выше. Приложение протестировано на устройствах: LG-P705 - Android 4.1.2 Huawei Y541-U02 - Android 4.4.2 Xiaomi Redmi Note 3 - Android 5.0.2 LRX22G (MIUI by xiaomi.eu stable 7.3.1) Samsung SM-T585 Galaxy Tab A 10.1 - Android 7.0
  21. По поводу доступа, гляньте вот эту заметку http://delphifmandroid.blogspot.ru/2014/02/deployment-manager.html (обратите внимание на картинку)
  22. Итак, если речь про Андроид, то вы скорее всего поступаете не правильно. База и без вашего массива(клона) висит в памяти, а вы хотите ещё нагрузить... А если записей станет 100 000?! и не известно какая там ещё структура таблицы... Это я вот к чему, вы же скорее всего сравниваете по какому-то столбцу, так и извлекайте нужный вам столбец, а не все сразу. Далее, я не стал бы извлекать все записи в массив, т.е. создавать клон базы, проще попробовать выполнить запрос по извлечению/поиску конкретной записи и посмотреть на скорость отработки. Мне думается, это будет менее затратно... Не делайте так Результаты тестов ниже. (это моё ИМХО, но другие обоснованные мнения приветствуются , я тоже бываю не прав...) Если вы всё же используете свой способ, то воспользуйтесь ключевым словом "Limit". Справка по Select (SQLite) А вообще, дайте больше информации: Какая платформа? Какая структура таблицы? Что с чем нужно сравнивать?
  23. Написал статейку по вашей теме [Google Play] Публикация приложения в Google Play
×
×
  • Создать...