Окей, только причем это к моему комментарию?
Это был ответа на
Давно думал, почему никто не реализовывает этот функционал!
И реализовано, имхо, более удачно, чем у Google.
Вернее, более точная база используется.
Более точная для какого региона, на основе чего вы сделали вывод этот?
У вас есть какая-то информация по базе от гугл и по базе от Яндекса, или это ваше личное ИМХО?
openpf довольно сырое решение.
в продакшене его точно пока нельзя использовать, одно время смотрели на него, но пока отказались.
тот же яндекс.билинг на тестовых примерах не заводился и крешился из-за отсутствующих пермишенов. Т.к. было различие между реальным яндекс.маректом и реализацией в openpf, пермишены по разному назывались. Нормальной документации у них нет.
Возможно сейчас лучше, но когда смотрел, в декабре 2013, было именно так.
Реализация google billing, тоже оставляет желать лучшего. Заявлено, что построено как раз на основе радного api google. По факту они его правили и добавили своих багов.)
Насколько я понимаю, этот метод проверяет наличие установленного в системе пакета Google Play Services и его версию, а не факт доступности подключения.
Только что проверил его работу, отключив работу 3G и WiFi сразу перед вызовом isGooglePlayServicesAvailable — результат ConnectionResult.SUCCESS.
Этот метод проверяет не только установлены или нет, а также актуальная ли версия, не отключены ли сервисы в системе. Если статус отличный от ConnectionResult.SUCCESS, то вы однозначно не сможете воспользоватся пушами.
Большей частью эта ошибка преследует тех, кто до сих пор использует c2dm
А зачем использовать c2dm, если он уже немалое время deprecated? Понятное дело, что вы с ним будете испытывать проблемы, не зря же его перестали поддерживать.
Во вторых, вы пытаетесь ввести читателя в заблуждение, вначале говорите о GCM, а потом плавно на c2dm переходите и говорите какая плохая документация для GCM, ничего не работает.
тем не менее, согласно документации метод public String register (String… senderIds) throws IOException, таким образом в случае ошибок связи с гугловыми сервисами будет выбрасываться именно исключение, в статье же приводится альтернативная попытка получения registartion ID
Понятное дело, что может возникнуть, если у вас нет конешина к интернету. Этот кейс прекрасно описан в ссылке, которую вы приводили:
} catch (IOException ex) {
msg = "Error :" + ex.getMessage();
// If there is an error, don't just keep trying to register.
// Require the user to click a button again, or perform
// exponential back-off.
}
И с GCM вам никак не может слушание несуществующего броадкаста. В чем вина гугла, если вы не обрабатываете ошибку?
Урок №1: Будьте готовы часто получать SERVICE_NOT_AVAILABLE
А что в данном случае возвращает GooglePlayServicesUtil.isGooglePlayServicesAvailable(context)?
Может сервисы не доступны или не обновлены?
Урок №2: Будьте готовы к повторяющимся ошибкам вызова register, даже если рабочий registration ID создан
Вы о чем? Механизм с получением registartionID через broadcat использовался с с2dm, в GCM его возвращает сразу метод.
или пользователь делает сброс к заводским установкам (factory reset)
если пользователь делает factory reset ваше приложение удаляется, оО.
На этом все. Печально, что для того, что бы обеспечить бесперебойную работу GCM, пришлось идти на подобные «танцы с бубном» и еще печальней, что большинство этих моментов совершенно не документированы самим Google.
Если не читать документацию и делать абы как, то да действительно не будет работать.
Если следовать документации, все прекрасно работает, как ни странно.
Стока 4.4.2 на старом поколении: прозрачность и полноэкранный режим есть.
Полноэкранный режим должно поддерживать приложения, можете посмотреть например moon+ reader.
Прозрачность точно также присутствует, когда статус бар скрыт, потяните сверху экрана.
Да еще к тому же после того, как я поставил обновление по воздуху, планшет вообще навечно завис на экране включения. Пришлось через кастомный бутлоадер(ибо не кастомный был на этой версии прошивки сломан) заливать киткат руками.
Значит что-то до этого химичили, ибо ничего подобного не происходила на 2х девайсах старого поколения что есть на руках.
Отлично, есть вариант «мне не нравится Iphone: внешне\по характеристикам\другое». Только тут выбора нет. Но зато ставим сразу в пример, что какие молодцы поддерживают свою линейку.
А что вам мешает покупать серию Nexus от Google?
Девайсы получают обновления быстро.
Как обычно палка о двух концах, понятное дело что apple может себе позволить поддерживать девайсы которые они выпускают. Тоже самое и с гугловой серией.
А то что творится у других производитиелей, так это всем известно и никто вас не заставлял брать девайс у данного вендора.
Окей, только причем это к моему комментарию?
Это был ответа на
Более точная для какого региона, на основе чего вы сделали вывод этот?
У вас есть какая-то информация по базе от гугл и по базе от Яндекса, или это ваше личное ИМХО?
в продакшене его точно пока нельзя использовать, одно время смотрели на него, но пока отказались.
тот же яндекс.билинг на тестовых примерах не заводился и крешился из-за отсутствующих пермишенов. Т.к. было различие между реальным яндекс.маректом и реализацией в openpf, пермишены по разному назывались. Нормальной документации у них нет.
Возможно сейчас лучше, но когда смотрел, в декабре 2013, было именно так.
Реализация google billing, тоже оставляет желать лучшего. Заявлено, что построено как раз на основе радного api google. По факту они его правили и добавили своих багов.)
Этот метод проверяет не только установлены или нет, а также актуальная ли версия, не отключены ли сервисы в системе. Если статус отличный от ConnectionResult.SUCCESS, то вы однозначно не сможете воспользоватся пушами.
А зачем использовать c2dm, если он уже немалое время deprecated? Понятное дело, что вы с ним будете испытывать проблемы, не зря же его перестали поддерживать.
Во вторых, вы пытаетесь ввести читателя в заблуждение, вначале говорите о GCM, а потом плавно на c2dm переходите и говорите какая плохая документация для GCM, ничего не работает.
Понятное дело, что может возникнуть, если у вас нет конешина к интернету. Этот кейс прекрасно описан в ссылке, которую вы приводили:
И с GCM вам никак не может слушание несуществующего броадкаста. В чем вина гугла, если вы не обрабатываете ошибку?
А что в данном случае возвращает GooglePlayServicesUtil.isGooglePlayServicesAvailable(context)?
Может сервисы не доступны или не обновлены?
Вы о чем? Механизм с получением registartionID через broadcat использовался с с2dm, в GCM его возвращает сразу метод.
если пользователь делает factory reset ваше приложение удаляется, оО.
Если не читать документацию и делать абы как, то да действительно не будет работать.
Если следовать документации, все прекрасно работает, как ни странно.
тоже однажды напоролся на это.
после этого просто правлю flash скрипт, нужно всего-лишь удалить из него «fastboot erase userdata»
Полноэкранный режим должно поддерживать приложения, можете посмотреть например moon+ reader.
Прозрачность точно также присутствует, когда статус бар скрыт, потяните сверху экрана.
Значит что-то до этого химичили, ибо ничего подобного не происходила на 2х девайсах старого поколения что есть на руках.
Девайсы получают обновления быстро.
Как обычно палка о двух концах, понятное дело что apple может себе позволить поддерживать девайсы которые они выпускают. Тоже самое и с гугловой серией.
А то что творится у других производитиелей, так это всем известно и никто вас не заставлял брать девайс у данного вендора.
на той же винде ваш фонарик может иметь доступ к чему захочет, слушать ваши пароли и т.д.
PS: до сих пор не понимаю, где вы в слове андроид нашли «й».