Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> J2ME+прием SMS, Работает только на мотороле... 
V
    Опции темы
Anton Vatchenko
Дата 17.1.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 21.5.2004

Репутация: нет
Всего: -1



Есть сервис-сервер, который может слать смски на любой номер в бинарном виде на заданный порт. Есть мидлет, который старается принять эту смс. На мотороле все удачно работает, но сониэрикссон и сименс глючат. Как объяснить???
Код

    public void startApp() {
        mDisplay = Display.getDisplay(this);

        String connections[];
        connections = PushRegistry.listConnections(true);

        //Sms
        if (connections.length != 0) {
            for (int i = connections.length - 1; i >= 0; i--) {
                try {
                    MessageConnection mc = (MessageConnection) Connector.open(connections[i]);
                    mc.setMessageListener(this);
                }
                catch (java.lang.SecurityException exp) {
                }
                catch (java.io.IOException exp) {
                }
            }
            smsInit();
        }
        //User
        else
        {
            connections = PushRegistry.listConnections(false);
            //sb.append("FalseConn="+connections.length+"\n");
            System.out.println("A1");
    
            for (int i = connections.length - 1; i >= 0; i--) {
                try {
                    System.out.println("A2");
                    MessageConnection mc = (MessageConnection) Connector.open(connections[i]);
                    mc.setMessageListener(this);
                }
                catch (java.lang.SecurityException exp) {
                    System.out.println("Exception1");
                }
                catch (java.io.IOException exp) {
                    System.out.println("Exception2");
                }
            }
    
            if(connections.length==0) {
                System.out.println("A6");
                String url = "sms://:22001";
                String midlet = getClass().getName();
                try {
                    PushRegistry.registerConnection(url, midlet, "*");
                }
                catch (Exception e) {
                    System.out.println("Exception3");
                }
            }
            pictureMenu.start();
        }
    }
    
    public void pauseApp() {}
  
    public void destroyApp(boolean unconditional) {
    }

    public void notifyIncomingMessage(MessageConnection conn) {
        Message msg = null;
        String msgReceived=new String();
        try {
            msg = conn.receive();
        }
        catch (Exception e) {
            System.out.println("processMessage.receive " + e);
        }
        if (msg instanceof TextMessage) {
            TextMessage tmsg = (TextMessage)msg;
            msgReceived = tmsg.getPayloadText();
        }
        else 
        {
            if (msg instanceof BinaryMessage) {
                BinaryMessage bmsg = (BinaryMessage)msg;
                byte[] data = bmsg.getPayloadData();
                StringBuffer sb=new StringBuffer();
                for(int i=0; i<data.length; i++)
                {
                    if(data[i]==13)
                        sb.append('\n');
                    else
                        sb.append((char)data[i]);
                }
                msgReceived=sb.toString();
            }
        }
        setSmsText(msgReceived);
    }



--------------------
user posted image
PM MAIL   Вверх
redrick
Дата 17.1.2006, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: 1
Всего: 5



1) возможно на твоих телефонах нет поддержки WMA

2) я как то тоже игрался и был удивлен что эффект PushRegistry зависит от того, на какой порт "вешаться" т.е. при происывании в JAD (я через него делал) порта 0000, SMSки все равно шли мимо мидлета в инбокс
то бишь возможно на твоих девайсах тоже были такие "выделенные" порты - но это канечно маловероятно

3) если твой мдилет гарантированно запущен на момент прихода СМСки (судя по коду это предполагается) - то можно слушать без PushRegistry, через Connector.open(“sms://:22001); типа как ServerSocket


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
Anton Vatchenko
Дата 18.1.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 21.5.2004

Репутация: нет
Всего: -1



На Сименсе стало работать после того, как поставил порт прослушивания 16111 и стал выгружать все созданные MessageConnection. Но СониЭрик не хочет и все. Вроде регистрируется прослушивание, а смски приходят в Инбокс и приложение тупо не запускается.
Добавлено @ 16:37
Все, заработало. Это был глюк платного сервера, который отсылает смски - в поле from должен был быть номер, а произвольные названия отправителей СониЭрик не принимает


--------------------
user posted image
PM MAIL   Вверх
DEMOVERSION
Дата 22.2.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 18.10.2005

Репутация: нет
Всего: 1



А можно увидеть весь код?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.1064 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.