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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка-прием СМС, не могу реализовать отправку-прием смс 
V
    Опции темы
SergeJava
Дата 30.3.2011, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уважаемые господа!
Помогите пжалста разобраться с принципами отправки-приема СМС на телефоне.
(В j2me я чайник и прошу сразу не бить smile )
Покапавшись на просторах инета и почитав немного статей я написал некую прогу, кторая должна отправлять самой себе смс и получать его:
package SMSManager;

Код

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import javax.microedition.io.PushRegistry;
import java.io.IOException;
import javax.wireless.messaging.*;
import javax.microedition.io.Connector;
import java.io.*;
 

public class Sender extends MIDlet implements CommandListener, Runnable, MessageListener {
    
    private Form SenderForm;
    private Display myDisp;
    private StringItem OWNTel;
    private StringItem OWNEml;
    private StringItem RCVTel;
    private StringItem Action;
    private String OWNTelS = "6700000";
    private String SMSPort = ":16200";
    private String ActionS = "None";
    private Command exit, test;
    private MessageConnection smsServer = null, smsClient = null;
    private Message Inmsg;
    private Thread Mythread = null;

    public Sender (){
        myDisp = Display.getDisplay(this);
    }
    
    public void startApp() {
        SenderForm = new Form("SMS Manager");
        OWNTel = new StringItem ("Owner Telephon:", OWNTelS);
        SenderForm.append(OWNTel);
        Action = new StringItem ("Action: ",ActionS);
        SenderForm.append(Action);
        exit = new Command ("Exit", Command.EXIT, 0);
        SenderForm.addCommand(exit);
        test = new Command ("Test", Command.ITEM, 1);
        SenderForm.addCommand(test);
        SenderForm.setCommandListener(this);
        myDisp.setCurrent(SenderForm);
        

        if (smsServer == null) {
          try {
             smsServer = (MessageConnection)Connector.open("sms://"+SMSPort);
             smsServer.setMessageListener(this);
              } catch (IOException ioe) {}
        }


    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
        notifyDestroyed();
    }

    public void commandAction(Command c, Displayable d) {
        if (c == exit){
            destroyApp (false);
        }
        if (c == test){
            SendTestSMS();
        }

    }

    private void SendTestSMS (){
        try{
            smsClient = (MessageConnection)Connector.open("sms://"+OWNTelS+SMSPort);
            TextMessage OutMessage = (TextMessage)smsClient.newMessage(MessageConnection.TEXT_MESSAGE);
            OutMessage.setPayloadText("Test SMS");
            smsClient.send(OutMessage);
            smsClient.close();
        } catch (IOException ioe){}
    }
    

    public void notifyIncomingMessage(MessageConnection conn) {
        Action.setText("Message is"); (по моему мнению, когда приходит смс - на экране должно писаться "Message is", однако этого не происходит) :dash1 

    }

    public void run() {
        Action.setText("Run");
      try {
         Inmsg = smsServer.receive();
         if (Inmsg != null) {
            Action.setText("Ready");
            if (Inmsg instanceof TextMessage) {
                Action.setText("SMS is recieved");
            }
         }
      } catch (IOException e) {e.printStackTrace();}
   }
     
}


Писал в NetBeans, тестил с помощью Nokia S40 SDK Emulator.
НО НИЧЕГО НЕ РАБОТАЕТ. СМС приходит в инбокс телефона и не воспринимается мидлетом. ЧТО Я ДЕЛАЮ НЕ ТАК, поможите пжалста, а то я весь моск сломал.


Это сообщение отредактировал(а) W0LF - 31.3.2011, 15:49
PM MAIL   Вверх
ivanovpv
Дата 31.3.2011, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

Репутация: 10
Всего: 28



Цитата(SergeJava @  30.3.2011,  15:21 Найти цитируемый пост)
ЧТО Я ДЕЛАЮ НЕ ТАК, поможите пжалста, а то я весь моск сломал.

Не надо моск ломать - он пригодится для другого smile

1) В J2ME запрещен доступ к т.н. "нулевому" порту SMS - то есть тем которым через общаются нормальные юзеры сообщения которых ходют в INBOX и проч. Есть какие-то нестандартные (следовательно) кривые способы обхода этого запрета - но разговор не про них. Мидлет не может слушать нулевой порт и не может посылать сообщения на нулевой порт - точка.
2) В вашем коде стоит порт 16200 - соответственно надо посылать и принимать сообщения именно на этом порту.
3) Если так уж хотца иметь доступ к нормальному SMS порту - Symbian, iPhone, Android, WebOS, Badu в руки и вперед

P.S. Вот потому то и умирает J2ME - из-за таких идиётских ограничений.


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
SergeJava
Дата 31.3.2011, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пол дела сделано smile 
Мидлет заработал на эмуляторе, но на реальном телефоне все равно не арбайтн smile 
в чем проблема, ума не приложу. 

Это сообщение отредактировал(а) SergeJava - 31.3.2011, 14:01
PM MAIL   Вверх
ivanovpv
Дата 1.4.2011, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

Репутация: 10
Всего: 28



Читает или не читает SergeJava, что ему пишут? 

Ну видать лоб крепкий пущай бьется  smile  


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
SergeJava
Дата 4.4.2011, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Все заработало smile 
Лоб остался жив smile 
Тема закрыта.
PM MAIL   Вверх
ivanovpv
Дата 4.4.2011, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

Репутация: 10
Всего: 28



Цитата(SergeJava @  4.4.2011,  10:29 Найти цитируемый пост)
Все заработало  

Да, ладно! Если на самом деле так - просьба сообщить модель телефона + использованные либы/API и кусочек кода. Может я постарел и чего то уже не понимаю? smile 


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

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

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


 




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


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

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