Форум программистов, компьютерный форум CyberForum.ru

Приём сообщений от сервера в фоне - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android SQLite и NDK http://www.cyberforum.ru/android-dev/thread1804869.html
Гуру, кто-нибудь с подобным сталкивался? Предстоят сложные процедуры из нескольких SQLite на одну "команду". Математика расчетов SQL строки сложные - не помешало бы ускорить. Многие команды ОЧЕНЬ хочется скрыть от декомпила новичками(декомпилить яву куда проще чем декомпилить С++, и я хочу НАДЕЖНО зашифровать некоторые поля/таблицы). Реально ли подобное? Основы NDK знаю. Знаю как...
Программирование Android Вызывать последовательно методы или потоки Что то устал бороться с асинхронностью Явы. Например строки 6-7 выполняются после цикла 15-17, а активация кнопки и фона происходят сразу при вызове метода. public void Learn() { for (int x = 0; x < 5; x++){ timetaske2 = new TimeTaskE2(); timetaske2.execute(); try { timetaskje = new TimeTaskJe(); ... http://www.cyberforum.ru/android-dev/thread1804866.html
Отправка запроса (на сайт steam) с использованием httpurlconnection Программирование Android
Всем привет. Может кто-нибудь подсказать как сделать запрос на страницу предмета steam, например, на эту(http://steamcommunity.com/market/listings/730/FAMAS%20%7C%20Contrast%20Spray%20%28Factory%20New%29), для того чтобы получить html файл?
Программирование Android Запрет доступа к камере и геолокации
Как на Android studio сделать программу запрета доступа к камере и геолокации ? JAVA справится с этим ?
Программирование Android Возникает ошибка при запросе http://www.cyberforum.ru/android-dev/thread1804687.html
package com.example.ks; /** * Created by Denis on 08.09.2016. */ import java.util.ArrayList; import java.util.List; import com.example.ks.parser.JSONParser; import org.apache.http.NameValuePair;
Программирование Android Нет функции add Volley Здравствуйте, появилась надобность в post запросах на android использую код с данного сайта https://www.kompulsa.com/how-to-send-a-post-request-in-android/ но почему то кричит на последнюю строку "MyRequestQueue.add(MyStringRequest);" unknown class MyStringRequest + не распознаёт add. Подскажите пожалуйста что не так. подробнее

Показать сообщение отдельно
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 129
15.09.2016, 05:57  [ТС]     Приём сообщений от сервера в фоне
REALIST07,
1. Есть кнопка вход, при нажатие на неё я отправлял запрос на авторизацию
Java
1
((Socket) this.getApplication()).connectWebSocket("1.1.3#Логин;Пароль|"); // такой формат запроса где 1.1.3# это команда, Логин Пароль это параметры
2. Когда я нажимаю мы обращаемся в этот класс
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  public void connectWebSocket(final String s) { /*метод подключения*/
 
        URI uri;
        try {
            uri = new URI(SERVER );   //сервер
        } catch (URISyntaxException e) {
            e.printStackTrace();
            return;
        }
        mWebSocketClient = new WebSocketClient(uri,new Draft_17()) {
            @Override
            public void onOpen(ServerHandshake serverHandshake) {
                Log.i("Websocket", "Opened");
                mWebSocketClient.send(s); //отпровляем команнду
 
                Log.i("e", "e" + s);
 
            }
 
            @Override
            public void onMessage(String s) { //получаем сообщение с сервера
                final String message = s;
               Log.e("m","m ="+message);
                treatmentMesage(message); //метод обработки сообщения
 
            }
 
            @Override
            public void onClose(int i, String s, boolean b) { 
                Log.i("Websocket", "Closed " + s);
           
 
            }
 
            @Override
            public void onError(Exception e) { //ошибка соединения
                Log.i("Websocket", "Error " + e.getMessage());
 
        
            }
        };
 
               mWebSocketClient.connect(); //создать подключение
 
 
    }
3. В логах я вижу как начинает приходить сообщение с сервера и обрабатываю его в методе
Java
1
2
3
4
5
6
7
   @Override
            public void onMessage(String s) { //получаем сообщение с сервера
                final String message = s;
               Log.e("m","m ="+message);
                treatmentMesage(message); //метод обработки сообщения
 
            }
4.строка в виде:
JSON
1
09-15 09:09:30.033 3451-3517/com.chat.chat_v100 E/m: m ={"type":"Connection","body":{"Type":"on","GroupID":null,"userT":"user","Id":41726,"chat":{"Id":41726,"Fio":"Усольцева Вера Витальевна (v_surkov@meshalkin.ru)","Email":"Гостиница ФГБУ ННИИПК Е.Н. Мешалкина","Phone":"","Readlytime":null,"LastMessage":null,"Site":null,"Status":null,"IP":"::1","Region":"::1","HomeTown":"::1","new_count_mes":null,"status_of_chat":null}}}
5. обрабатываю строку в зависимости от пришедшего типа.
запихиваю нужную информацию в ArrayList
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 public void treatmentMesage(String s) {
 
        try {
 
            dataJsonObj = new JSONObject(s);
            String chats = dataJsonObj.getString("type");
            JSONObject bodyDataJsonObj = null;
            JSONObject newChatJsonObj = null;
            JSONObject connectDataJsonObj = null;
            switch (chats) {  //входящие сообщения
                case "Connection": //подключения
                    String bodyConnect = dataJsonObj.getString("body");
                    connectDataJsonObj = new JSONObject(bodyConnect);
                    String type = connectDataJsonObj.getString("Type");
                    String groupid = connectDataJsonObj.getString("GroupID");
                    String userT = connectDataJsonObj.getString("userT");
                    String Id = connectDataJsonObj.getString("Id");
                    String chat = connectDataJsonObj.getString("chat");
                    if(type.equals("fail"))
                    {
                        setQ(11);
                    }
 
                    break;
                case "Chats":  //чат
                  //  setQ(2);
                    jpm = new JsonParseMessage();
                    jpm.messageExpanded(s);
                    getArray();
 
 
                    break;
                case "Chanels": //каналы
 
                    jpm = new JsonParseMessage();
                    jpm.messageExpanded(s);
                    Log.e("12", "12");
 
                    // Log.e("m","m ="+s);
                    getChannels();
 
                    break;
                case "Message": //сообщения
                ......
6. И уже в другом классе в потоке отслеживаю по вот этому идентификатору setQ(2);
Java
1
2
3
4
5
6
7
8
9
10
11
12
   if(((Socket)this.getApplication()).getQ() == 2)
            {
 
                int counter = 0;
                for(int i = 0; i<  ((Socket)this.getApplication()).getId_dialog().size() ; i++) {
          
                    Dialog d = new Dialog(((Socket)this.getApplication()).getId_dialog().get(i),((Socket)this.getApplication()).getMail().get(i),
                            ((Socket)this.getApplication()).getName().get(i),((Socket)this.getApplication()).getReadlyTime().get(i),((Socket)this.getApplication()).getLastMessage().get(i),
                            ((Socket)this.getApplication()).getChat_channel_id2().get(i),((Socket)this.getApplication()).getChat_channel_id3().get(i));
                    dialogArray.add(i,d);
                
                }
7. Со всеми остальными запросами аналогично.
Как то так

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

Добавлено через 35 минут
REALIST07, ну потом еще и уведомление вывести, если сообщение пришло (Message)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru