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

Andrey Efimov

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

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

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

    123

Сообщения, опубликованные Andrey Efimov

  1. Ага, где-то косяк, вероятнее всего в драйверах/ПО HTC Sync (разбираться где именно косяк, удалить всё и заново устанавливать), на втором месте СДК, а точнее с пакетом "platform-tools" (тут как вариант, можно переустановить/обновить), версия API значения не имеет .

     

    АП.

    p.s. В теме про прошивку, у народа тоже такие проблемы возникают, как я и говорил "HTC в своём репертуаре..."

  2. 18 минут назад, x11 сказал:

    HTC One Max.

    При старте monitor.bat  появляется на мгновение окно консоли и закрывается. Разбираюсь, что не так.

    Так и должно быть, окно появляется и сразу исчезает.

    16 минут назад, x11 сказал:

    запустил

    "C:\Users\Public\Documents\Embarcadero\Studio\18.0\PlatformSDKs\android-sdk-windows\tools\lib\monitor-x86_64\monitor.exe"

    выдало ошибку и приказало смотреть лог.

    Попробуйте "Запустить от имени Администратора". Увидел новое сообщение.

    Второй вариант - проверим через  ADB:

    1) Заходим в "\SDK\platform-tools", зажимаем Shift и в пустом месте щёлкаем правой кнопкой мышки, выбираем пункт "Открыть окно команд" (или запустите CMD любым другим способом, но обязательно перейдите в эту директорию)

    2) Подключаем девайс, в CMD пишем "adb devices" и смотрим какой будет ответ

     

    АП.

    7 минут назад, x11 сказал:

    Диспетчер задач показывает кучу запущенных мониторов.

    Запуск от с повышением привилегий не помог. Перезагружу ПК.

    Да, нужно всё завершить.

     

    p.s. Посмотрел тему по вашему девайсу. Похоже htc в своём репертуаре....

  3. 1 час назад, x11 сказал:

    Кто-то удалил мои вопросы. Зачем? Верните на место, пожалуйста.

    Все 5 пунктов выполнил. Среда не видит смартфон.

    Ваши вопросы не удалили, а переместили в вашу же тему, там где они более уместны. Т.к. у вас две темы: одна про отладку, другая про СДК, то и мешать их не надо. Ваши вопросы были про СДК, я перенёс их в тему про СДК.

    Теперь вопросы по теме:

    • Какая модель девайса?
    • Android Device Monitor (\SDK\tools\monitor.bat) видит ваш девайс?
  4. 7 минут назад, x11 сказал:

    У меня такой вопрос. Обязательно ли установленная версия SDK должна соответствовать версии Андроида на смартфоне?

    Т.е. на смартфоне 5.0.1, т.е. и в Дельфи должна быть активная версия API 21? Или как?

    Не обязательно. Можно использовать SDK идущее в комплекте со студией.

     

    6 минут назад, x11 сказал:

    Да, читал.

    В том-то и дело.

    Что я хочу установить 21, а получается, что устанавливаю 25?

    Тогда КАК установить/добавить 21?

    Вот тут выберите версию

    Снимок.PNG

  5. Эм... вы читали ошибку?

    Студия дала вам чёткий ответ "Такой СДК уже существует", да и на первом скрине видно, что у вас уже добавлен какой-то "Android SDK 25...", видимо, это он и есть.

  6. Вот вам инструкция почти на все случаи подключения девайса для отладки:

    1) Запускаем SDK Manager и устанавливаем Google USB Driver (категория Extras)

    2) Идём на 4pda.ru/forum/ тема с прошивками для вашей модели, в шапке качаем драйвера и устанавливаем

    3) На устройстве включаем режим Разработчика и ставим галочку "Отладка USB"

    4) Подключаем устройство и ждём пока полностью подхватятся драйвера (в новых версиях Андроида: на устройстве выскочит табличка, дайте положительный ответ)

    5) Заходим в Студию и запускаем приложение через F9 (для отладки) или Shift+Ctrl+F9(без отладки)

  7. Ссылки на сторонний ресурс я удалю.

    По теме, ваше приложение уже опубликовано, вы же скрин скидывали, там чётко написано. Наведите мышку на кружок рядом с надписью "Опубликовано" и увидите ссылку на ваше приложение.

    На форуме есть специальный раздел для публикации своих приложений: Приложения, написанные с использованием FireMonkey. Создайте там тему для своего приложения, вставьте ссылку ведущую на Google Play, описание, по желанию, скрины.

  8. Вы заполнили описание и т.п.. Что вам осталось сделать?

    Внедрить рабочую версию проекта, проще говоря, залить apk файл в консоль. В конце появится кнопка "Опубликовать", нажмёте её и останется подождать, пока приложение пройдёт модерацию.

    Если уже залили, то зайдите в меню Управление рабочей версией и посмотрите, что пишет консоль, возможно кнопка находится именно там.

    О том как добавлять приложение в маркет я писал несколько статей (правда дизайн на скринах старый, но суть не изменилась):

  9. 11 минуту назад, Anatoliy сказал:

    Поставил

    
    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="16" /> 

    Закинул apk на хостинг. Скачал на телефон. При попытке установить, пишет будет поиск аккаунтов на устройстве и интернет. Следовательно GET_ACCOUNTS сохранился...

    Поставил

    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />

    Все нормально. Пишет что нужен только интернет.

    Темень в этом вопросе....

    P.S.

    Сейчас попробую все по новой. Может где-то ошибся...

    Вопросы:

    На какой версии Андроида проверяете?

    Вы точно удалили разрешение из манифеста? Проверьте итоговый манифест.

     

    Чуть позже, сам смогу проверить на разных версиях Андроид.

    Можете приложить файл манифеста из папки Проект/Android/Debug или Realese/.

     

    Ап.

    P.s. ок, вижу, вопрос решился.

  10. 8 минут назад, Anatoliy сказал:

    А на сколько критично будет если оставить 14 во втором пункте?

    
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> 

    Вероятно, почти очевидно, что на устройствах с АПИ 14 будет вываливаться ошибка о том, что нет необходимого разрешения. Прочитайте 3 последних сообщения, где я привёл примеры касательно пушей.

     

    Ну и от себя могу добавить, зачем вам поддерживать столь древние устройства? Если верить Platform Versions, таких устройств осталось всего 0.7%. Сейчас можно смело ставить minSdkVersion = 16.

  11. 7 минут назад, Ingalime сказал:

    Если я оставлю разрешение GET_ACCOUNTS, то гугл консоль его обнаружит и заставит сочинять политику конфиденциальности. Правильно?

    Судя по сообщению ТС - ответ Да.

    7 минут назад, Ingalime сказал:

    Как вычленить это разрешение напрочь? Пуст пострадают некоторые устройства.

    Тогда должно помочь:

    21 час назад, Andrey Efimov сказал:

    Как убрать разрешение:

    1. Собираем приложение (Build)
    2. Открываем "Проект\AndroidManifest.template.xml", выставляем минимальную и целевую версию СДК.
    3. Делаем Clear проекта и снова Собираем приложение (Build)
    4. Находим файл "Проект\Android\Debug\AndroidManifest.xml", открываем и удаляем строку с разрешением, сохраняем.
    5. Делаем деплой и заливаем в консоль.

    Во втором пункте будет так:

    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="16" /> 
    В targetSdkVersion можете указать версию на которой тестируете разрабатываете приложение или оставить так, как я написал выше.

     

    После этого, проверьте работу пушей на устройстве с Андроид 4.1.2 и выше.

  12. Ну смотрите, если я правильно понял, то данное разрешение требуется до Андроид 4.0.4 (включительно). И учитывая тот факт, что вы хотите поддерживать максимальное количество устройств, то должен сработать такой способ (описанный в сообщении выше):

    Цитата

     

    Если нужно оставить разрешение для старых версий АПИ, то можно сделать так:

    1. Собираем приложение (Build)
    2. Находим файл "Проект\Android\Debug\AndroidManifest.xml", открываем, и в строку с разрешением добавляем " android:maxSdkVersion="Версия АПИ" ", версию выбираем исходя из ответа на вопрос "на какой версии АПИ данное разрешение перестало требоваться?", сохраняем.
    3. Делаем деплой и заливаем в консоль.

     

    Строка будет выглядеть так:

        <uses-permission android:name="android.permission.GET_ACCOUNTS"  android:maxSdkVersion="15" />

    Разрешение будет запрашиваться на всех версиях до той (включительно), которую вы указали.

    Но, опять же нужно протестировать приложение как минимум на версиях Андроид 4.0 - 4.1.2 и Андроид 4.4.2 и выше. Это очень важно сделать, т.к. поведение может отличаться от ожидаемого. (мне с пушами пока не особо доводилось связываться, в теории, изменение в манифесте должно помочь). Если проверите, то обязательно отпишитесь сюда о результатах.

  13. 10 часов назад, ENERGY сказал:

    То ли это ночь на меня влияет, но я так и не понял для чего это указывают разработчики. Ведь Delphi указывает в манифесте 14 и 14, при этом программа работает от Android 4.0.1 до 7+ .

    И кстати, эти параметры можно изменить только вручную редактируя манифест?

    Да, на данный момент, только вручную.

    Если смотреть поверхностно, то

    android:minSdkVersion="14" android:targetSdkVersion="14"

    означает:

    1) Приложение может запускаться на версиях от 14 АПИ (minSdkVersion)

    2) Приложение разработано для 14 АПИ (targetSdkVersion)

    3) Приложение при установке на АПИ отличное от версии 14 (targetSdkVersion) будет работать в режиме совместимости. Как известно в Андроиде существует обратная совместимость версий, что несомненно является плюсом, иначе просто пришлось бы собирать приложение для каждой версии Андроида

    4) Эти параметры используются в Google Play и всех версиях Андроида начиная с 4 АПИ (если мне не изменяет память...)

     

    Т.о. если вы разрабатываете и тестируете на версии Андроид 6.0 (23 АПИ), т.е. вы используете новые методы АПИ и т.п., и при этом хотите оставить поддержку старых версий Андроида, вам необходимо:

    1) Указать параметр "targetSdkVersion" равный 23 АПИ и разработать приложение в соответствии с требованиями 23 АПИ

    2) Решить насколько старые устройства должны поддерживаться вашим приложением, допустим мы решили, что это будут устройства с Андроид 4.1.2 (16 АПИ) на борту, значит вам необходимо:

    • указать параметр minSdkVersion равный 16 АПИ
    • сделать проверку версии АПИ для всех методов из нового АПИ, в данном случае 23

    3) И самое главное, протестировать приложение на Андроид 4.1.2 (16 АПИ) и Андроид 6.0 (23 АПИ)

    Про совместимость версий, раньше было написано в Гугл документации, сейчас не знаю... В некоторых моментах, поведение приложения будет разным. Например, при запросе разрешений в АПИ 19 и АПИ 23 (при вот таких параметрах android:minSdkVersion="16" android:targetSdkVersion="23"), обо всём этом написано в справке гугла.

     

    p.s. Из трёх сообщений можно статью уже запилить... :D

  14. Минимальная версия СДК - это версия на которой приложение может работать, т.к. поддерживает его (в основном касается запросов в АПИ)

    Целевая версия СДК - это версия на которой приложение разрабатывалось/тестировалось.

    Например: android:minSdkVersion="14" android:targetSdkVersion="23".

    Приложение разрабатывалось для 23 АПИ, но будет работать и на 14. Тут важно предусмотреть ситуации, когда методы из 23 АПИ не будут работать на 14 АПИ, т.е. перед тем как запрашивать метод из АПИ, нужно сделать проверку СДК/АПИ на устройстве, иначе, в большинстве случаев, вывалится ошибка.

    Пример:

    Метод is5GHzBandSupported, как видим, добавлен в 21 АПИ, значит не будет работать в АПИ ниже этой версии.

    В коде мы напишем что-то подобное:

            if (TJBuild_VERSION.JavaClass.SDK_INT >= 21) then
            begin
              Запрос метода is5GHzBandSupported
            end;

     

    p.s. Не успел отправить ответ, сообщение уже удалили...

  15. В 06.07.2017 в 15:19, Anatoliy сказал:

    Научите как настраивать политику конфиденциальности

    Вероятно, вам требуется добавить ссылку на политику конфиденциальности в Консоли разработчика.

    Делается это так:

    1) Заходим в консоль разработчика

    2) Выбираем приложение

    3) В меню открываем вкладку "Настройка страницы приложения" и жмём по "Описание приложения"

    4) Спускаемся в самый низ, там будет раздел "Политика конфиденциальности", вставляем ссылку на страничку/документ

    5) Сохраняем и публикуем новые настройки

    Скрытый текст

    Снимок.PNG

     

    Про GET_ACCOUNTS.

    Как убрать разрешение:

    1. Собираем приложение (Build)
    2. Открываем "Проект\AndroidManifest.template.xml", выставляем минимальную и целевую версию СДК.
    3. Делаем Clear проекта и снова Собираем приложение (Build)
    4. Находим файл "Проект\Android\Debug\AndroidManifest.xml", открываем и удаляем строку с разрешением, сохраняем.
    5. Делаем деплой и заливаем в консоль.

    Если нужно оставить разрешение для старых версий АПИ, то можно сделать так:

    1. Собираем приложение (Build)
    2. Находим файл "Проект\Android\Debug\AndroidManifest.xml", открываем, и в строку с разрешением добавляем " android:maxSdkVersion="Версия АПИ" ", версию выбираем исходя из ответа на вопрос "на какой версии АПИ данное разрешение перестало требоваться?", сохраняем.
    3. Делаем деплой и заливаем в консоль.

    Разрешение будет запрашиваться на всех версиях до той (включительно), которую вы указали.

     

    Если вам необходимо запрашивать разрешение на версиях АПИ 23 и выше, то необходимо добавить специальный метод в ваше приложение, я максимально упростил эту задачу. Статья с описанием: Добавляем метод onRequestPermissionsResult в приложение. Либа для скачивания:CustomActivityAndListener

     

    p.s. Надеюсь, правильно понял ваши вопросы...

  16. Если дело в скачивании, то вынести загрузку картинок в отдельный поток. В Берлине у компонента NetHTTPClient есть свойство Asynchronous (Using an HTTP Client - Making Requests Asynchronous) для того чтобы форма/приложение не подвисало пока что-то загружается из инета.

  17. В 28.06.2017 в 07:47, MikeWuzHere сказал:

    Пытаюсь подсунуть в библиотеки сгенерированный java файл,

    В Java файле всё правильно прописали?

    В 28.06.2017 в 07:47, MikeWuzHere сказал:

    .dex решил не добавлять ибо в инструкции написано что так можно.

    Можно, но тогда нужно добавить jar-файл.

    В 28.06.2017 в 12:36, MikeWuzHere сказал:

    Кстати можно ли использовать classes.dex из вашего семпла?

    В вашем случае - нет.

    1 час назад, MikeWuzHere сказал:

    На Tokyo приложение из блога

    На Токио не проверялось. Статья написана для Seattle, но 100% работает на Berlin (только вчера реализовывал данную функцию в новом приложении), а вот Токио пока в топку.

  18. Можно просто сделать текст "Новости" жирным и кнопка будет выделяться из кучи других. Или добавить какой-нибудь лёгкий эффект подсветки к тексту.

     

    p.s. Например, меня очень раздражают откровенно навязчивые элементы, типа анимации(дёргания и т.п.) или мигания... бррр... :)

  19. Уже давно замечены проблемы Indy с SSL на Android, вроде как, даже сама Idera рекомендовала (пруф не дам, т.к. не помню где видел это) использовать новые TNetHTTPClient и TNetHTTPRequest.

    Попробуйте использовать эти компоненты, с SSL работать умеют и асинхронные запросы умеют (т.е. не придётся создавать отдельный поток, достаточно изменить свойство компонента), и ещё куча всего.

    Основная справка с примерами тут: Using an HTTP Client

  20. Рекомендую вернуться на Berlin Upd2.

    Tokyo вышла очень бажная, особенно в плане мобильной разработки. Юзать текущую версию себе дороже выйдет. Нужно дождаться как минимум Upd1, но я думаю лучше сразу Upd2 ждать.

  21. Тема закрыта.

    Учитесь пользоваться поиском, все вопросы уже обсуждались на форуме.

    По вашей теме ответ тут (соседняя тема...): [TWebBrowser] [Android] Работа с локальными картинками и файлами

    и ещё справка: FMX.WebBrowser.TWebBrowser

     

    АП.

    И вообще, вам уже предложили варианты открытия файла и даже объяснили их, в вашей же теме... Эта тема дубликат. http://fire-monkey.ru/topic/4252-как-запаковать-pdf-в-проект-и-как-потом-получить-к-нему-доступ/?do=findComment&comment=26896

  22. Картинки сделаны правильно. Единственное, я бы попробовал придвинуть границы растягиваемых областей (зелёные области) прямо впритык к логотипу (как в примере ниже).

    Скорее всего, проблема в том (это предположение!), что в студии нельзя добавить картинки для:

    • xxhdpi (extra-extra-high) ~480dpi (scale 3)
    • xxxhdpi (extra-extra-extra-high) ~640dpi (scale 4)

    Nexus 5 вроде как имеет 480dpi, хотя в разных местах по разному пишут, где-то и 420dpi упоминается. Т.к. картинки нет, берётся самая подходящая из существующих, соответственно это картинка для xhdpi (scale 2) и растягивается.

    Если это так, то:

    • идеальное решение - добавить недостающие картинки и прописать их.
    • возможный костыль - поиграться с параметром "Splash gravity"

    Пример, о котором упоминал вначале:

    Скрытый текст


    Снимок.PNGСнимок2.PNGСнимок3.PNG


     

     

×
×
  • Создать...