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

Satellite

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

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

  • Посещение

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

    2

Satellite стал победителем дня 19 апреля 2015

Satellite имел наиболее популярный контент!

Информация

  • Пол
    Мужчина

Посетители профиля

1 290 просмотров профиля
  1. Скачать отдельно SDK, можно обновить при необходимости. При установке Seattle установить только NDK (пути оставить по умолчанию). У кого стоит уже Seattle и NDK можно пропустить. Прописать путь к новому SDK как у меня в настройках Android. По желанию можно поставить JDK той же версии, как и у меня.
  2. Исправление проблемы с обновлением бара на Android 5.1: В настройках проекта выбираем No TitleBar: Project -> Options -> Version Info -> Theme: No TitleBar. Код события Onresize необходимо переместить в конец Onshow, т.к. в Onresize перестанет возвращаться высота бара. D: После выполнения этих действий, должно работать нормально на любом устройстве.
  3. if (TJKeyCharacterMap.JavaClass.deviceHasKey(AKEYCODE_BACK)) and (TJKeyCharacterMap.JavaClass.deviceHasKey(AKEYCODE_MENU)) then Всё равно значение true передаётся, но navigationbar'a помине нет в системе.
  4. Мне понравился укороченный вариант, ведь можно реализовать его следующим образом: To determine the presence of a hardware keys, this method is the easiest: . . uses Androidapi.KeyCodes, Androidapi.JNI.GraphicsContentViewText, . . TJKeyCharacterMap.JavaClass.deviceHasKey(AKEYCODE_BACK) //To detect hardware BACK TJKeyCharacterMap.JavaClass.deviceHasKey(AKEYCODE_MENU) //To detect hardware MENU . . Result for deviceHasKey is Boolean. All keycode constants can be found in unit Androidapi.KeyCodes. Источник З.Ы. Остаётся лишь написать проверку и тестить.
  5. Встречал одно независимое решение: Ищем разницу между realSize.y и screenSize.y, сравниваем разницу с высотой navigationbar'a. Если (difference == navBarHeight), то navigationbar в системе есть. @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) public boolean hasNavBar(Context context) { Point realSize = new Point(); Point screenSize = new Point(); boolean hasNavBar = false; DisplayMetrics metrics = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getRealMetrics(metrics); realSize.x = metrics.widthPixels; realSize.y = metrics.heightPixels; getWindowManager().getDefaultDisplay().getSize(screenSize); if (realSize.y != screenSize.y) { int difference = realSize.y - screenSize.y; int navBarHeight = 0; Resources resources = context.getResources(); int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); if (resourceId > 0) { navBarHeight = resources.getDimensionPixelSize(resourceId); } if (navBarHeight != 0) { if (difference == navBarHeight) { hasNavBar = true; } } } return hasNavBar; } Источник
  6. Проверил чисто с Window.addFlags, проблема на месте. Также пробовал и с Window.addFlags, и с Window.setFlags вместе. З.Ы.: Также меня интересует, какое значение возвращается с getIdentifier (resourceID) на nexus? По идеи должно вернуть 17956965. Просто на Android 5.1, getBoolean(resourceID) возвращает true.
  7. Sony Xperia XA (Android 6.0), на нём и проблемки. Всё прекрасно работает с проверкой значения config_showNavigationBar, правда на Android 5.1 проблема с обновлением (только после смены ориентации экрана - закрашивается статус-бар).
  8. if not TJKeyCharacterMap.JavaClass.deviceHasKey(TJKeyEvent.JavaClass.KEYCODE_BACK) then Хотелось бы уточнить по данной проверке, ведь она не на всех смартфонах срабатывает. Да и вообще нет надежного способа проверить есть ли navigationbar. На Android 5.1 (без navigationbar), c аппаратными кнопками, условие if not работает, бар не показывается, потому что его нет, но на Android 6.0 (с navigationbar), без аппаратный кнопок, это условие уже не работает, navigationbar не заливается, хотя он есть в системе. Если изменить проверку на if (без not), на Android 6.0 navigationbar заливается, однако, navigationbar становится виден и на Android 5.1 (если обновить форму), хотя в системе он не поддерживается (естественно, потому что проверка не верна). Можно попробовать проверять значение config_showNavigationBar, что-то вроде этого: resourceID:=TAndroidHelper.Activity.getResources.getIdentifier(StringToJString('config_showNavigationBar'), StringToJString('bool'), StringToJString('android')); Строка возвращает следующий набор значений: Значение: "17956965" если navigationbar есть, "17956955", если его нет. Как можно сконвертировать в привычные 0 или 1?
  9. Возможно ли вывести 9-patch в Timage? Если нет, то куда можно импортировать изображение такого формата?
  10. Имеется стандартный код вывода уведомления в потоке: procedure TMyThread.Execute; var MyNotification: TNotification; begin MyNotification := NotificationsForm.NotificationCenter1.CreateNotification; try MyNotification.Name := 'Windows10Notification'; MyNotification.Title := 'Windows 10 Notification #1'; MyNotification.AlertBody := 'RAD Studio 10 Seattle'; NotificationsForm.NotificationCenter1.PresentNotification(MyNotification); finally MyNotification.Free; end; end; Проблема в том, что в потоке уведомление не срабатывает. С чем это связано, и как это можно завести?
  11. Satellite

    Consume Product

    В документации следующее: Правильно-ли я понял, если у меня используется расходный материал, мне следует вызывать FInAppPurchase.ConsumeProduct(product) вместо FInAppPurchase.PurchaseProduct(product)? А дальше уже обрабатывать в FInAppPurchase.OnConsumeCompleted? Также было написано, что в качестве альтернативы, можно вызывать ConsumeProducts со списком идентификаторов продукта.: procedure ConsumeProducts; var products: TStringList; begin products := TStringList.Create; if FInAppPurchase.IsProductPurchased(product1) then products.Add(product1); if FInAppPurchase.IsProductPurchased(product2) then products.Add(product2); if FInAppPurchase.IsProductPurchased(product3) then products.Add(product3); if FInAppPurchase.IsProductPurchased(product4) then products.Add(product5); FInAppPurchase.ConsumeProducts(products); end; Тоже не совсем понятно, что даёт мне список идентификаторов продукта.
×
×
  • Создать...