Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
1

Как лучше поступить?

12.12.2015, 00:47. Показов 1169. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть уже законченное приложение. Принцип которого вэб приложение, грузящее основную часть через инет. Но не суть - тут всё работает. Есть необходимость добавить проверку некоего состояния (проще говоря опрашивать какой то URL получая ответ) и в случае если ответ тот, что нужен, то выводить уведомление всерху в трее (ну как это все приложения делают). Как это реализовать? Нужно ли как то писать стороний сервис с проверкой урл или этот сервис пишется внутри моего приложения и он же справится с выводом уведомлений?

Я просто никогда не писал сервисы и не занимался уведомлениями и не знаю как лучше это реализовать. Но в иделае хотелось бы всё в одном приложении.

Добавлено через 1 час 27 минут
P.S. забыл добавить - опрос состояния нужен в фоновом режиме. Ну как у смс, скайпа или подобных програм, когда фоновый процесс (сервис) чекает что либо и выводит уведомление.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2015, 00:47
Ответы с готовыми решениями:

Как лучше поступить с задачей сохранения картинки на сервере
Такая дилемма.. Задача в том, чтобы получить картинку с камеры android-устройства и отправить ее на...

Подскажите как лучше поступить(делегирование,дефайн.)
Господа... у меня есть property 'user'... который хранится в AppDelegate Я могу к нему достучаться...

Как лучше поступить?
Видеокарта GeForce GTX570 Процессор Intel Core i7 2600K Модуль памяти Kingston HyperX 4096Mb x2...

Как лучше поступить?
Доброго времени суток всем. Есть не совсем стандартный вопрос.. Имеем систему мать - Gigabyte...

18
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
12.12.2015, 14:25 2
Прочитайте внимательно статью.
http://startandroid.ru/ru/urok... toj-primer
0
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 15:00  [ТС] 3
Да, спасибо. Мне именно принцип понять нужно, я мог найти ответ в инете и сам, но я же могу найти решение не для моей ситуации и начать работать не в том направлении. Потому решил посоветоваться.
0
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
12.12.2015, 15:35 4
У вас будет отдельный поток. В нем вы будете по таймеру делать HTTP запрос на ваш ресурс, и результат проверять на нужный вам action. При совпадении вы можете создавать уведомление.
0
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 15:40  [ТС] 5
Я уже создал тестовый сервис. Сейчас решаю как правильнее сделать опрос (цикл?) и уничтожение этого цикла. Скорее всего буду давать возможность частоты опроса 1 мин и более (тобиш таймеры работающие по милисекундам не особо нужны, я думаю использовать TimeUnit).

ну и отдельный вопрос будет - как мне опросить некий урл, могу ли я сделать POST запрос или мне доступны только GET, и как это вообще сделать и получить результат.
0
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
12.12.2015, 17:06 6
Цитата Сообщение от Shin0by Посмотреть сообщение
ну и отдельный вопрос будет - как мне опросить некий урл, могу ли я сделать POST запрос или мне доступны только GET, и как это вообще сделать и получить результат.
Все что вам нужно было, это открыть гугл и вписать в поисковую строчку - "java post get запрос". Но я сделал это за вас, вот ссылка с подробными примерами - http://java-help.ru/android-get-post/
0
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 18:15  [ТС] 7
Это действительно не сложно. Но я же не знал, что с сервисами это всё применимо. Я был уверен, что сервисы имеют ограничения кроме графического интерфейса.

Выводить всплывающие уведомление (те что сверху в строке) лучше из сервиса или из активити? Или это вообще не играет роли?
0
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
12.12.2015, 18:41 8
прочитал задачу. а разве asynctask Вам не достаточно?
0
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 18:48  [ТС] 9
Допускаю, что мне может понадобиться проверять статус при запуске андройда (если пользователь выдерет), а это как я понимаю уже только сервис.

Я думал про асинк, и использую это в двухсторонней связи приложения в вэб частью
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
12.12.2015, 19:48 10
Shin0by, а может лучше смотреть в сторону GCM? Постоянные запросы будут выжирать батарею очень быстро.
0
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 20:33  [ТС] 11
Может это то, что нужно. Я про такую технологию не знал. Почитаю.

Добавлено через 17 минут
Похоже для меня это очень сложно. Я PhP и JS программист, на Java я пишу с трудом копипастя код. Я понял, что эта технология позволяет связать мой сервер с облаком которое раздает уже некие данные.

Но мне же всёравно придётся использовать сервис? просто обращаться к некоему объекту облака который уже будет поддерживать соединение и гонять трафик?

Добавлено через 25 минут
давайте я опишу задачу полностью и даже покажу пример уже рабочего приложения. Наверное есть правильные решения и "мои".

Вот вэб приложение https://play.google.com/store/... tarcitizen

Я хочу сделать, что бы при появлении новостей (которые для всех клиентов пока одни и те же, разделение я не предусмтариваю, только для рус. версии отображаю сразу рус часть новостей, и скрываю англ и для английского наоборот, но все могут видеть и те и те новости). Так вот, мне в принципе пригодны 2 варианта как я понимаю.
1) Опрашивать с клиента. Отсылая (ид) последней загруженной новости на сервер и там сервер думает и высылает, если есть что загрузить например в JSON предоставляя мне заголовки для всплывающих уведомлений.
Человек кликает на уведомление, открывается из свернутого состояния или грузится программа и отображает новоти просто все которые есть и соответственно новые.

2) Это если сделать иначе. Сервер (получив новость) шлёт всем клиентам (я так понимаю что это как раз та вышеупомянутая технология?) что есть новость. даже если в ту же секунду кто то обновлял новости или только запустил программу, то ничего страшного, если при этом вылезет уведомление о появлении новостей которые 2 сек назад пользователь загрузил (главное что бы не спустя 2 мин).

если что, то я уже надыбал и обкатал кусок кода который обрабатывает JSON и замечательно получаю в массив заголовки новых новостей. Просто потом возможно буду чекать не только новости и для этого хочу использовать JSON, так как в него всё можно завернут и структурировать.
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
12.12.2015, 20:46 12
Цитата Сообщение от Shin0by Посмотреть сообщение
Похоже для меня это очень сложно. Я PhP и JS программист
Там как раз основная часть серверная, на самом телефоне ничего сложного.
Цитата Сообщение от Shin0by Посмотреть сообщение
Но мне же всёравно придётся использовать сервис?
Нет, при получении уведомления оно придет в Receiver и оттуда можно все что угодно делать с полученными данными.
Цитата Сообщение от Shin0by Посмотреть сообщение
если при этом вылезет уведомление о появлении новостей которые 2 сек назад пользователь загрузил (главное что бы не спустя 2 мин).
Бывает приходит и через несколько часов, но можно проверить локальные новости и показать уведомление только если новые еще не загружали.
0
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 20:47  [ТС] 13
Но инициатором получения\рассылки выступает сервер (понятно что клиент обращается, но тем не менее)?
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
12.12.2015, 20:49 14
Цитата Сообщение от Shin0by Посмотреть сообщение
Но инициатором получения\рассылки выступает сервер (понятно что клиент обращается, но тем не менее)?
Да сервер, клиент не обращается. Там по идее висит гугл сервис и проверяет не пришло ли какому-то приложению сообщение и, если пришло, рассылает эти сообщения по приложениям.
0
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 20:51  [ТС] 15
Да, это то что надо точно. Попробую разобраться.

Моему приложению из сервиса гугла будет приходить в итоге какой то алерт или целиком массив с присланными данными и я это получаю и думаю что делать с этим?
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
12.12.2015, 21:01 16
Можно добавить до 4х килобайт строку к сообщению, и она будет доставлена в приложение, если будет больше 4х - сообщение не дойдет.
0
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
12.12.2015, 21:37 17
Советую вам прочитать литературу про разработку при помощи Android SDK.
0
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
13.12.2015, 17:23  [ТС] 18
Я хочу уточнить правильно ли я понял GCM. Я налаживаю через пхп связь с сервисом гугла на андройде (он сам манагерит связь хранит сообщения), чекаю своим сервисом в некоем пуле (ресивере) наличие моих сообщений (их может прийти или 0 или 10 или 1...), проверяю ИД (при условии что я его туда послал) и если ИД выше моего, то я даю ресиверу команду на отображение всплывающего сообщения.

Я пытаюсь логику в голове определить что бы уже потом под нее решения искать.

https://developers.google.com/... configured

Добавлено через 1 час 16 минут
Сгенерил некий google-services.json демо и на этом встал. не понимаю ни фи га. Вот кусок из урока гугла:

Что за GcmSender.java? У меня в проекте такого нет. 31 строка? API_KEY у меня встречается только в импортнутом json конфиге.

Как выполнить "run the following gradle command"? я не отрицаю, что в андройд разработке я 0. Но я пытаюсь применяя иной опыт. Но сейчас я вообще не понимаю, и не могу найти русскоязычных уроков. А всё что есть это обучалка от майкрософт на базе Azure (который уже платный и там всеравно очень непонятно всё в описании.) и от гуга (( И вроде просто всё но не выходит.

First, make sure your API key is provided as the value of API_KEY in line 31 of GcmSender.java
Inside Android Studio, click the run button and select an attached device.
When the sample application loads on your device, run the following gradle command to send a notification to all registered app instances:
./gradlew run -Pmsg="<message>"

Может кто то знает урок по этим облачным пушап уведомлениям в идеале на русском?

Добавлено через 29 минут
Пытаюсь зайти с другой стороны и опять затык

apply plugin: 'com.google.gms.google-services'
Gradle sync failed: Plugin with id 'com.google.gms.google-services' not found.

чтож за.... пытаюсь гуглить но нифига не понятно как именно эту проблему решить.

Добавлено через 17 минут
кусок gradle. apply plugin: 'com.google.gms.google-services' - выдает ошибку. перерыл всё. не понял как его подключить.

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'


dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
classpath 'com.google.gms:google-services:1.5.0-beta2'
compile 'com.google.android.gms:play-services-gcm:8.3.0'
}
0
2 / 2 / 0
Регистрация: 05.12.2014
Сообщений: 39
18.12.2015, 11:16 19
По ссылке написано - на первом шаге качаешь /android/gcm с github, открываешь через Android Studio. Будет App ( приложение ) и GCMSender (я так понял он эмулирует сервер). Открываешь GcmSender.java, и заменяешь API_KEY на свой (его надо перед этим сгенерировать). Run the following gradle command - можно через терминал, можно через командную строку
0
18.12.2015, 11:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2015, 11:16
Помогаю со студенческими работами здесь

Как лучше поступить?
Ребятки, в который раз обращаюсь к вам за помощью, благодарности нет предела. В этот раз у меня...

Как лучше поступить?
Есть активно работающая таблица с несколькими десятками тысяч записей. Только сейчас появилась...

Как лучше поступить?
Есть чистый сайт на нем 2000 страниц тиц 0 и пр 0 что сделать что бы яша весь его проиндексил...

Как лучше поступить?
Доброго времени суток. По непонятной причине вышел из строя один из двух таких модулей. Как лучше...

Как лучше поступить?
Внешние ссылки ведут на страницы которые выдают 404, что с ними делать? На редиректе уже стоит...

Как лучше поступить?
Добрый день! Я студент 1 курса специальности &quot;Компьютерные науки&quot;. Сейчас мы изучаем язык Си,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru