Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Приём сообщений от сервера в фоне

Привет, нужна помощь в структуре.
Первый раз работаю с подключением.
В общем к делу:
1.Отправляю запрос на сервер
2.У меня есть tabhost, инициализирую его с двумя классами, диалоги, и звонки.
3. Сейчас после запроса мне приходит ответ в виде Json строки, распарспарсиваю и заполняю как на скрине.

Вопрос собственно такой, мне нужно динамически отслеживать приходящую строку, так как после авторизации сервер будет мне отсылать сообщения с данными.

Как только прийдет сообщение мне нужно сразу обновить.

Я использую обычный Thread , AsyncTask не подходит так как он же выполняется один раз.

А мне нужно слушать на протяжение всей жизни приложения. Все бы нечего, но на слабых одноядерных с оперативой 512 жутко тормозит.

Обращаюсь сюда потому что нужен совет людей по опытней.

Так же я понял что нужно скорее всего использовать подключение в Service, и выводить уведомления с помощью Reciver. Но не знаю как применить это к моему коду.

Буду очень благодарен за помощь.
Ответ: Ну вообще как на скрине
после авторизации начинает приходить Json строки с определенным индефикатором, то есть например:
я отправил запрос на авторизации, приходит строка Connection я её разбираю, там есть поле Type принимает значение 1 и 2 в случае, если логин и пароль правильный придет 1(так же приходит строка Chat после успешной авторизации, со списком всех чатов, которые на скрине я добавил), если нет 2.

Так и с чатом, я отправляю запрос на добавление теста в определенный диалог, приходит строка Message. я ё разбираю, и добавляю

Добавлено через 5 минут
И дело в том что когда другие люди пишут, строка тоже приходит, соотвецветно, поэтому и нужно постоянно слушать, что бы обновлять чат, или список диалогов
Вопрос: Как открыть url для авторизации в браузере и после вернуть токен в приложение?

Здравствуйте!
Никак не пойму как я могу открыть URL в браузере Android, чтобы потом получить назад токен, после успешной авторизации? Не раз видел такое в приложениях, но не знаю, как это реализуется...
Буду очень благодарен за помощь!

Добавлено через 3 минуты
Как окрыть URL в браузере я знаю, но когда пользователь успешно пройдет авторизацию, сервер вернет что-то вроде bla-bla?code=1234 и я не пойму, как в этот момент сделать, чтобы браузер закрылся, а этот результат вернулся в приложение. Что писать вместо bla-bla я могу указать на сервере в callback URL.
Ответ:
Сообщение от contedevel
Это только начальная часть проблемы)
Ну как раз не начальная. Я так понимаю интент придет после авторизации (скорее всего будет приходить на все действия в браузере). Там еще в самом вопросе есть содержание манифеста, его тоже нужно добавить.
Вопрос: Нужен совет по правильной логике для авторизации пользователя при запуске приложения

Новичок в java и android, так что прошу сильно не пинать за терминологию

Итак. Хочу ради самообучения сделать приложение, которое будет при старте (сразу после показа основного layout) пытаться авторизоваться на веб-сервере: для этого отправлять запрос get вида http//myserver/auth?l=login&p=password (логин и пароль читаются из сохраненных настроек) и дожидаться ответ.

Если логин и пароль не заданы или авторизация на сервере не успешна, то выводить на экран активити с полями ввода логина, пароля и кнопками "войти" и "закрыть".

По кнопке "Войти" - попытка авторизации на сервере. Если успешна, то возврат на основное активити, если не успешна - остаемся на активити с вводом логина/пароля.

По кнопке "Закрыть" надо закрыть все приложение.

На данный момент есть основное активити Main, есть активити с Логином/Паролем actAuth, есть класс сохраняющий и получающий настройки.

На данный момент сделал только так:
в Main в OnCreate запускаю процесс авторизации с помощью AsyncTask. Но поскольку результат получаю с помощью .get() то пока не пройдет процесс авторизации или не кончится тайм-оут основное окно не отрисовано и кажется, что приложение висит. Пытался вывести информацию через ProgressDialog, но он тоже отрисовывается только после процесса авторизации - оно и понятно весь UI заблокирован из-за .get()


Подскажите правильную архитектуру подобной задачи, или ссылку на исходники где есть подобная логика.

Спасибо.

Добавлено через 7 минут
Добавлю:
В onResume у Main проверял: если нет авторизации, то закрывал приложение через finish() т.к. в onResume исполнение попадало только если активити с логином/паролем закрывалось...
Ответ: А в onCreate можно отменить создание и вернуться на вызвавший код?

Это я к тому, что может в Main открывать активити с логином/паролем,а в ней при открытии делать авторизацию если есть сохраненные логин/пароль. И в случае успешной авторизации даже не показывать лайоут, а сразу закрывать ?

Добавлено через 2 минуты
SergioO, спасибо, конечно, но не вижу смысла, так как в дальнейшем приложение должно активно работать с сервером - получать с него разные данные в xml, а реализацию этого я планирую на HttpURLConnection построить..

Добавлено через 44 секунды
Просто логика построение приложения на андроиде (все эти активити и их onCreate, onStop и т.д.) для меня нова... изучаю потихоньку..
Вопрос: Сервер + авторизация

Решил сделать приложение для android с авторизацией + отправкой на сервер (вроде WhatsApp, пишу для развлечения), но к сожалению ни в том, ни в другом не понимаю, нет готовых решений серверов или исходников авторизации?
Ответ:
Сервер на PHP или Java, приложение андроид, решил написать клиент-сервер приложение, просто регистрация, авторизация и чат, ничего лишнего
Вопрос: Авторизация через аккаунт гугл

Здравствуйте, делаю диплом, столкнулся с проблемой авторизации. Думаю через Гугл аккаунт.
Есть база, в которой будет хранится информация о пользователе, как такое реализовать, надо ли в базе таблице user? если да то какой пароль туда писать, авторизация пригодится, если программу удалят, а потом заново установят - сохранятся все настройки, и т.д.
Я не компетентный в данной теме, поскольку под android не программировал и с android studio хорошо не знаком.
Буду рад любой инфе.
Ответ: needelp, добрый день! Ничего не понятно.
Вы хотите запоминать информацию о пользователе на сервере или на клиенте?
Если на клиенте, то после удаления программы (и связанных данных) восстановить профиль, по идее, нельзя.
Если на сервер, то зачем хранить пароль?
Почему только через Google? Есть ведь ВК, FB, ОК, twitter и др.
Вопрос: Нужно реализовать клиент-сервер. За счет сервера выступает parse

Привет всем юзерам, дело в том что у меня есть авторизация, где за счет сервера выступает parse.com, я хотел чтобы зайдя в приложение увидеть посты людей, которые они сделали, там нажав на кнопочку добавить пост и т.д. Прошу помогите
Ответ: Lorddrous, есть тут такой гуру всяких авторизаций вконтактах yura91, поищите в его темах, дабы новую не плодить.
Вопрос: приложение с сервером

у меня есть простеньекая авторизация, информация идет в бд, как сделать чтобы эта информация попадала ко мне если я использую не эмулятор а готовый апк файл, не понимаю как в приложение сделать соединение, как я понял нужен клиент-серверное взаимодействие
Ответ: программа должна обращаться к серверу, который нужно написать
самый простой способ для этого использовать TCP или HTTP
соответственно нужна реализация либо TCP либо web-сервера, который будет принимать-отправлять запросы мобильного приложения, а сам уже работать с БД.
Вопрос: Авторизация. Архитектура приложения

Здравствуйте. Как начинающий разработчик по Андроид, хотел бы получить дельных ответов (советов) на свои вопросы.

В частности интересует как правильно построить приложение, у которого присутствует авторизация (управление несколькими учетными записями), а так же всё наполнение информацией и взаимодействие с пользователем через API. Но давайте по порядку.

Хочется сделать клон приложения (Владлинк в Play Market ).
Интересует:
1) Реализация первичной загрузки и авторизация (сохранение нескольких учеток и переключение между ними).
Как правильно сохранять пользователей, что бы ими можно было управлять (удалять) через список учетных записей Андроида? Понятное дело, что это будет сохраненный токен, который приложение получило после того, как постучалось в API с логином и паролем. 
Но как правильно хранить? В массиве, в базе, может библиотека есть для реализации подобной авторизации. 
Так же вопрос сохранении и возможности смены учетной записи после выхода из приложения (но это вероятно закроется само собой после реализации)
2) Взаимодействие приложения с API посредствам методов с параметрами (думаю стандартно всё)
Как правильно (безопасно) реализовывать обмен данными (получение контента, сохранение, удаления и другие действия) между приложением и API? Формат тут конечно не важен, так как распарсить можно, что угодно (json, xml, ...)

Очень буду благодарен за пояснения по вопросам, ссылкам на соответствующие статьи, примеры, библиотеки и всё что касается реальной информации.
ПС: Отправлять читать книги для новичков не надо. Всё это уже давно знаю)
Ответ:
Здравствуйте. Как начинающий разработчик по Андроид, хотел бы получить дельных ответов (советов) на свои вопросы.

В частности интересует как правильно построить приложение, у которого присутствует авторизация (управление несколькими учетными записями), а так же всё наполнение информацией и взаимодействие с пользователем через API. Но давайте по порядку.

Хочется сделать клон приложения (Владлинк в Play Market ).
Интересует:
1) Реализация первичной загрузки и авторизация (сохранение нескольких учеток и переключение между ними).
Как правильно сохранять пользователей, что бы ими можно было управлять (удалять) через список учетных записей Андроида? Понятное дело, что это будет сохраненный токен, который приложение получило после того, как постучалось в API с логином и паролем. 
Но как правильно хранить? В массиве, в базе, может библиотека есть для реализации подобной авторизации. 
Так же вопрос сохранении и возможности смены учетной записи после выхода из приложения (но это вероятно закроется само собой после реализации)
2) Взаимодействие приложения с API посредствам методов с параметрами (думаю стандартно всё)
Как правильно (безопасно) реализовывать обмен данными (получение контента, сохранение, удаления и другие действия) между приложением и API? Формат тут конечно не важен, так как распарсить можно, что угодно (json, xml, ...)

Очень буду благодарен за пояснения по вопросам, ссылкам на соответствующие статьи, примеры, библиотеки и всё что касается реальной информации.
ПС: Отправлять читать книги для новичков не надо. Всё это уже давно знаю)
Вопрос: Авторизация в VK, получение auth_key

Есть приложение в vk.com называется "Программа1" в его HTML коде есть параметр "auth_key". Вопрос, как получить этот параметр? Т.е как вытащить этот параметр я знаю , но не знаю как пройти авторизацию и запустить адрес приложения чтобы его распарсить.
среда разработки Android studio.
Ответ: Да, для авторизации использую OAuth-авторизация (авторизация успешна), но когда пытаюсь загрузить страницу с приложением пишет , что нужна авторизация на сайте.
Вопрос: Отправка Push уведомлений с сервера Java на устройство Android

Есть такой код:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
JSONObject data = new JSONObject();
 
        data.put("to", device);
 
        JSONObject info = new JSONObject();
 
        info.put("title", title);
        info.put("text", mgs);
 
        data.put("notification", info);
 
        //URL url = new URL("https://fcm.googleapis.com/fcm/send");
        URL url = new URL("https://gcm-http.googleapis.com/gcm/send");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestProperty("Authorization", "key=" + AUTH_KEY_FCM);
        conn.setRequestProperty("Content-Type", "application/json");
        conn.setRequestMethod("POST");
        conn.setDoOutput(true);
 
        OutputStream outputStream = conn.getOutputStream();
        outputStream.write(data.toJSONString().getBytes());
Отправляю со своего сервера.
Использовал две ссылки, но не работает.
Делаю как написано, но пуш не приходит на устройство. В ответ мне код 200 выдаёт.

Может я как-то не так делаю?
Ответ: Вот какой ответ приходит: если тестовый вариант ок - то пускай андродит попробует тестовые пуши. Может у него там вообще ничего не приходит ?
через настроеный firebase на дроиде
Обычным постом можна отправить пуш на девайс .
Java
1
https://fcm.googleapis.com/fcm/send
в хедере авторизации указать serverKey

json тело
Java
1
2
3
4
5
6
7
8
{
    "data": {
        "test1" : "test1",
        "test2" : "FCMtest"
        "message"  : "teeeest"
     },
    "registration_ids": ["TOKEN"]
}
registration_ids в вашем случае похоже на to
TOken - должен дать девайс.
Только в таком случае я получал пуши фаербейса на девайсе.
п.с. тестилось через postman

p.s. Кстати тело такого вида - позволяет получать пуш когда процес приложения убит.