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
Volodymyr
Sergey
Yuriy
Sergey
Как я понимаю тут не подобрать никак, да
Sergey
Хрен жк проверишь, темнит или нет
Сергій
Volodymyr
Это же не значит что на Api <26 работать не будет?
Сергій
Сергій
Room?
Volodymyr
Да
Сергій
Volodymyr
https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#1
Сергій
Сергій
Volodymyr
Спасибо
Sergey
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
Сергій
у дисплея уже есть размеры, ему отрисовка не нужна )
Сергій
Sergey
у дисплея уже есть размеры, ему отрисовка не нужна )
Я дебил. Не туда смотрел совсем. Нужно было подогнать камера превью под фулскрин, и оказалось что это серфейс вью не успевает отрисовываться)) Решил своим любимым view.post , но я где-то видел, что он не гарантирует ничего и лучше твоим способом делать через TreeObserver. Это верно?)
Сергій
Dmitry
Sergey
Сергій
У surface есть же листенер инициализации
Сергій
Используй его, там будут размеры
Sergey
onAttachedToWindow()?
Sergey
Я кажется понял...
Сергій
Sergey
Я понял, surfaceCreated вроде
Yuriy
Я понял, surfaceCreated вроде
А чем реализация инициализации из vision sample app не зашла? CameraSource лучше сразу допиленный бери или сразу под Camera API 2, если на старте
Anonymous
Изучаю Rx. Чтобы Observer видел Observable они должны быть в одном классе, или как то можно разместить Observable в репозитории, а Observer в презентере?
Sergey
Alexandr
Привет ребята. Такой вопрос - Как сервер может определить что https запрос был сделан именно с Android приложения, а не с постмана, например?
R
Ruslan
Alexandr
Yury
См. про фингерпринтинг. Но в целом никак
Yuriy
Он уточнить забыл , что другая сторона пытается скрыть свое истинное лицо
Yury
Тогда уточняй, что именно хочешь. Защититься от подделки запросов?
Yury
Быть уверенным, что запрос приходит именно от твоего приложения?
Alexandr
т.е. приложение должно использовать REST так чтобы сервер был уверен что запросы шлет валидное приложение а не кто то накручивает запросы через постман, или тупо через браузер)
Alexandr
Yury
Тогда смотри на проект safetynet гугла. Они позволяют получить подпись установленого приложения в рантайме от гуглосервисов. Теоретически этим можно подписывать запросы и проверять подпись на сервере.
Yuriy
А он что неприкасаемый?
Yury
Именно для защиты от пиратских приложений делали
Yury
Я не пробовал. Только прорабатывал вариант, если что
Yuriy
Тут изначально ответ никак, решать задачу надо другим способом
Anonymous
Направьте пожалуйста. Вроде все работает. Но судя по логам он идет в onSubscribe а потом onError. Почему он может не попадать в onNext?
Alexandr
R
да
Можно устроить адские пляски вокруг HTTP_USER_AGENT, но если вопрос "это мои клиенты или черти какие то" то 1) (сложно) передавай вектор шифровки с сервера шифруй фразу "привет это я" и отправляй в заголовке соответственно когда будешь дишефровывать узнаешь твое не твое 2) (проще) передавай в заголовке deviceType при получении токена далее будет связка токен - тип 3) (изи) передавай просто девайс тайп
Yury
Просто - нет. Все, что в твоем приложении считай открытым всем. Тебе обязательно нужна третья сторона. В андроиде это гуглосервисы через safetynet.
Alexandr
Yury
Ну либо гугли про опыт тех, кто защищается от пиратства приложений.
R
Yuriy
Google Authenticator, только пляски не от мобиле/десктоп, а свой / чужой. А если это голосовалка/счёт и т.п. То опыт всех без исключения показывает, что отсеять на входе не получится, получится через "пол года" выявлять и банить