Volodymyr
Sergey
Господа, кто-нибудь сталкивался с тем, что CameraSource от Google Vision темнит, в сравнении с основной камерой?
Сергій
implementation "android.arch.persistence.room:runtime:$room_version" annotationProcessor "android.arch.persistence.room:compiler:$room_version"
Volodymyr
Да, подключил
Volodymyr
Сергій
аннотации нигде не забыл?
Сергій
а почему разных версий?
Сергій
они должны быть одной версии
Сергій
и замени compile на implementation
Сергій
и пройдись по туториалу https://developer.android.com/training/data-storage/room/
Yuriy
Господа, кто-нибудь сталкивался с тем, что CameraSource от Google Vision темнит, в сравнении с основной камерой?
Fps уменьшить до 15, на многих телефонах начального уровня наблюдается этот эффект
Volodymyr
Sergey
Fps уменьшить до 15, на многих телефонах начального уровня наблюдается этот эффект
Работает, спасибо! А какие минусы данного подхода? Вроде не лагает
Sergey
Как я понимаю тут не подобрать никак, да
Sergey
Хрен жк проверишь, темнит или нет
Сергій
что?
Yuriy
Как я понимаю тут не подобрать никак, да
15 норм на старте, я в настройки вывел , пользователь сам решит. Так же с фокусом. Минусы - decoder,ы при большем fps лучше справляются.
Volodymyr
Это же не значит что на Api <26 работать не будет?
Сергій
Room?
Volodymyr
Да
Сергій
это откуда
Volodymyr
https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#1
Сергій
Да
в рум мин сдк 14
Сергій
Volodymyr
Спасибо
Sergey
И еще вопрос. Как в активити дождаться того, как все отрисуется. Мне нужно получить параметры дисплея, чтобы обрезать камера превью. В фрагменте я юзал view.post для похожих вещей
Сергій
view.getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() { public boolean onPreDraw() { view.getViewTreeObserver().removeOnPreDrawListener(this); // у вью уже есть размер } }
Volodymyr
Добавил несколько зависимостей и заработало
Сергій
размер именно дисплея пожно получить через Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width = size.x; int height = size.y;
Sergey
У меня проблема что при первом жапускк resources.displayMetrics
Sergey
Не успевает измериться
Sergey
Сейчас этот способ попробую!!
Sergey
Та же беда
Сергій
всмысле
Sergey
view.getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() { public boolean onPreDraw() { view.getViewTreeObserver().removeOnPreDrawListener(this); // у вью уже есть размер } }
А как эту штуку применить к рут лэйауту от активити. Я пока применяю ее к серфейс Вью
Сергій
у дисплея уже есть размеры, ему отрисовка не нужна )
Sergey
у дисплея уже есть размеры, ему отрисовка не нужна )
Я дебил. Не туда смотрел совсем. Нужно было подогнать камера превью под фулскрин, и оказалось что это серфейс вью не успевает отрисовываться)) Решил своим любимым view.post , но я где-то видел, что он не гарантирует ничего и лучше твоим способом делать через TreeObserver. Это верно?)
Sergey
.post не гарантирует что вью уже будет отрисовано
Понял, спасибо за качественную консультацию!)
Сергій
У surface есть же листенер инициализации
Сергій
Используй его, там будут размеры
Sergey
onAttachedToWindow()?
Sergey
Я кажется понял...
Сергій
Sergey
Я понял, surfaceCreated вроде
Yuriy
Я понял, surfaceCreated вроде
А чем реализация инициализации из vision sample app не зашла? CameraSource лучше сразу допиленный бери или сразу под Camera API 2, если на старте
Anonymous
Изучаю Rx. Чтобы Observer видел Observable они должны быть в одном классе, или как то можно разместить Observable в репозитории, а Observer в презентере?
Alexandr
Привет ребята. Такой вопрос - Как сервер может определить что https запрос был сделан именно с Android приложения, а не с постмана, например?
Alexandr
По user-agent можно наверно
Юзер агент можно в постмане проставить
Alexandr
По ключу :)
По какому?)
Yury
См. про фингерпринтинг. Но в целом никак
Yuriy
Он уточнить забыл , что другая сторона пытается скрыть свое истинное лицо
Alexandr
См. про фингерпринтинг. Но в целом никак
а может сертификат клиента некий использовать?
Yuriy
а может сертификат клиента некий использовать?
А что мешает этот сертификат на десктопе использовать?
Yury
Тогда уточняй, что именно хочешь. Защититься от подделки запросов?
Yury
Быть уверенным, что запрос приходит именно от твоего приложения?
Alexandr
т.е. приложение должно использовать REST так чтобы сервер был уверен что запросы шлет валидное приложение а не кто то накручивает запросы через постман, или тупо через браузер)
Yury
Тогда смотри на проект safetynet гугла. Они позволяют получить подпись установленого приложения в рантайме от гуглосервисов. Теоретически этим можно подписывать запросы и проверять подпись на сервере.
Yuriy
А он что неприкасаемый?
Yury
Именно для защиты от пиратских приложений делали
Yury
Я не пробовал. Только прорабатывал вариант, если что
Yuriy
Тут изначально ответ никак, решать задачу надо другим способом
Anonymous
Направьте пожалуйста. Вроде все работает. Но судя по логам он идет в onSubscribe а потом onError. Почему он может не попадать в onNext?
Alexandr
Тогда смотри на проект safetynet гугла. Они позволяют получить подпись установленого приложения в рантайме от гуглосервисов. Теоретически этим можно подписывать запросы и проверять подпись на сервере.
спасибо, посмотрю это решение) Просто по моему должно как то просто решаться... ибо Rest используется во многих приложениях и какое то решение безопасности должно быть
R
да
Можно устроить адские пляски вокруг HTTP_USER_AGENT, но если вопрос "это мои клиенты или черти какие то" то 1) (сложно) передавай вектор шифровки с сервера шифруй фразу "привет это я" и отправляй в заголовке соответственно когда будешь дишефровывать узнаешь твое не твое 2) (проще) передавай в заголовке deviceType при получении токена далее будет связка токен - тип 3) (изи) передавай просто девайс тайп
Yury
Просто - нет. Все, что в твоем приложении считай открытым всем. Тебе обязательно нужна третья сторона. В андроиде это гуглосервисы через safetynet.
Yury
Ну либо гугли про опыт тех, кто защищается от пиратства приложений.
Yuriy
Google Authenticator, только пляски не от мобиле/десктоп, а свой / чужой. А если это голосовалка/счёт и т.п. То опыт всех без исключения показывает, что отсеять на входе не получится, получится через "пол года" выявлять и банить