
Vitaliy
08.09.2016
22:16:39
Сервер, напоминаю, отправляет пуши через службы гугла, которые адресуют пакет, используя данные из стора

Gregory
08.09.2016
22:16:59

Vitaliy
08.09.2016
22:17:47
Что ты занудный-то такой сегодня, а.

Andrey
08.09.2016
22:19:04

Google

Vitaliy
08.09.2016
22:19:54
Тебе надо гарантировать, что пуш придет именно в необходимое приложение, а не просто во что-то с таким именем пакета.
Как ты это сделаешь?
Как минимум тебе нужна доверенная БД вида package_id -> signature. Эта БД стор и есть.

Andrey
08.09.2016
22:22:22

Vitaliy
08.09.2016
22:22:39
А как ты ещё будешь знать, что этой БД можно доверять?
В случае со стором информацию загружают сами владельцы пакетов, а не кто-то ещё.
То есть у тебя БД источник распространения пакетов и есть

Andrey
08.09.2016
22:23:57
К примеру как фейсбук делает.
Или другие сервисы пуш уведомлений.

Vitaliy
08.09.2016
22:24:58
Потому что Вася Пупкин может создать приложение с нашим package_id, установить его вместо нашего и ловить пуши, предназначенные только для нашего пакета
А мне хотелось бы иметь гарантию, что пуши, которые я отправлю с сервера, придут именно в мой апп.

Andrey
08.09.2016
22:26:07

Google

Andrey
08.09.2016
22:26:17
Я могу установить приложение, а после его подменить.

Vitaliy
08.09.2016
22:26:28
И оно будет с другим сертификатом

Andrey
08.09.2016
22:26:30
И что делать?

Vitaliy
08.09.2016
22:26:42
Пуш не пройдет

Andrey
08.09.2016
22:27:19

Vitaliy
08.09.2016
22:28:23
Без рута не перехватишь, с рутом — ну ок, ты сам вскрыл свою безопасность
Зато пользователи без рута могут быть уверены, что их сообщения абы куда не попадут

Andrey
08.09.2016
22:29:03

Vitaliy
08.09.2016
22:29:23
Да, например, твои чатики в Телеграме.

Andrey
08.09.2016
22:29:41
Ты можешь так же генерировать сертификат и подмены нет. Магазин нафига нужен?

Vitaliy
08.09.2016
22:30:34
Что ты генерировать хочешь?

Andrey
08.09.2016
22:32:07
Вот сейчас не очень понял, о чем ты.
Очень просто. Берешь и делаешь механизм активации, который основан на уникальных данных. К примеру - хеш от логин+пароль. И без компрометации данных пользователя сторонее приложение не сможет авторизоваться на твоём сервере пуш уведомлений.

Vitaliy
08.09.2016
22:32:34
Кастомные пуши, имеешь в виду? Только для своего приложения?

Andrey
08.09.2016
22:32:58

Vitaliy
08.09.2016
22:33:21
В смысле какая разница? Если ты делаешь глобальные, это совсем другое

Andrey
08.09.2016
22:33:29
Я тебе говорю, что привязка магазина к пушам - это хотелка гугла и не более. Архитектурного требования к этому нет.

Vitaliy
08.09.2016
22:33:52
Я задал уточняющий вопрос.

Google

Vitaliy
08.09.2016
22:34:06
Ещё раз. Я отправляю пуш с сервера, мне нужна гарантия того, что пуш попадет именно в мое приложение, а не во что-то, что его перехватит.
В общем-то, я могу на такое рассчитывать от пушей

Andrey
08.09.2016
22:34:30

Vitaliy
08.09.2016
22:34:51
Какой SDK все за меня делает?
Я знаю только GCM/FCM
Их нет на Яндекскитовских устройствах

Andrey
08.09.2016
22:35:23
К примеру facebook сам пуши через себя на андроид отправляет.

Vitaliy
08.09.2016
22:36:31
Допустим. Как Azure знает, что com.vkontakte.android это именно com.vkontakte.android, а не хитрое приложение, которое издано не vk.com?

Andrey
08.09.2016
22:36:58

Vitaliy
08.09.2016
22:37:12
Пуши приходят со стороны в приложение

Andrey
08.09.2016
22:37:18

Vitaliy
08.09.2016
22:37:28
Когда приложение делает запрос на сервер и получает данные — это не пуши, а поллинг
К тому же есть некоторые ситуации, когда мне нужно все-таки сделать что-то через пуш, а не через само приложение. Сам пример назвать не могу по некоторым причинам.

Andrey
08.09.2016
22:39:25
Ответь на мои 2 вопроса и я продолжу спор.

Vitaliy
08.09.2016
22:40:20
Андрей, у меня нет цели продолжить спор. Я спрашиваю, есть ли в Яндекс сторе система отправки пушей, которая провалидирует пакет, прежде чем доставлять туда пуш

Andrey
08.09.2016
22:41:07

Максим
09.09.2016
01:54:04
square/tape: A lightning fast, transactional, file-based FIFO for Android and Java.
https://github.com/square/tape

Google

Максим
09.09.2016
01:54:27
Это тупо очередь? В чем прикол?

Александр
09.09.2016
03:51:40
Вообще полезна тем, кто часто и много пишет
Обычно не нужна

Stas
09.09.2016
05:20:44

Максим
09.09.2016
05:30:26
Привет
Странно, даже это не работает:
String[] mContacts = { "Мурзик", "Рыжик", "Барсик", "Борис", "Бегемот", "Мурка" };
mSearchField.setAdapter(new ArrayAdapter(getContext(), android.R.layout.simple_dropdown_item_1line, mContacts));

Admin
ERROR: S client not available

Максим
09.09.2016
05:31:14
Реакции неь вообще
У кого было?
http://prntscr.com/cfvzxc

Dmitry
09.09.2016
05:35:52
ребят, вопрос по котлину есть
class Mapper {
companion object {
fun transform(){…}
}
}
=> в чем будет разница, если я напишу так:
object Mapper {
fun transform(){…}
}
?? И какой вариант лучше?

Максим
09.09.2016
05:38:12
Решил проблему

Gerc
09.09.2016
05:47:09

Александр
09.09.2016
05:51:11
Зачем его тогда добавлять?)

Максим
09.09.2016
05:59:42
Кто сталкивался с проблемой с русским языком в SQLite?
.where("word LIKE ?%") не работает

Google

Nikita
09.09.2016
06:02:31
Кодировку проверил?
Захардкож кодировку таблицы при создании

Максим
09.09.2016
06:03:56
У иеня готовая таблица
БД
Выбрасывает Exception
http://prntscr.com/cfw7fa

Nikita
09.09.2016
06:05:45
Что значит "у тебя готовая таблица"

Максим
09.09.2016
06:06:05
Готовая БД с таблицами
В папкеassets

Nikita
09.09.2016
06:06:25
Еще раз грю. Подобная проблема может возникать только из-за несоответствия кодировок.
Тут и копай
Ибо английский язык от русского в машинном смысле мало чем отличается
Шо там байтики, Шо там байтики
Глянь какая кодировка у таблицы

Максим
09.09.2016
06:10:27
А как кодировку узнать? Я выводил данный из БД. С кодировкой все норм

Yura
09.09.2016
06:10:44

Rustem
09.09.2016
06:20:18

Gerc
09.09.2016
06:21:36
И вообще-то ты меня забанил

Максим
09.09.2016
06:23:33
Решил проблему)