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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> get SMS 
:(
    Опции темы
Samuil
Дата 24.9.2006, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

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



Привет ребята! Начал разбирать jsr120, разобрался как отправлять смс абоненту , но вот только чет получать их никак не получается. При получении смс программа телефона реагирует, а моя никак не отвечает на то что пришло смс. Искал по форуму, но нашел только пример как отправлять, если кто может поиогите пожалуйста очень хотелось бы этому научится, Вот код который должен получать, но не получает, часть кода взял с сайта MobilLab.ru

Код

import javax.microedition.io.Connector;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.wireless.messaging.*;


public class smsClass extends MIDlet {

  private TextBox textF;
  private Display display;

  public void startApp() {
    display = Display.getDisplay(this);
    getSms();
  }

  public void pauseApp() {}

  public void destroyApp(boolean _boolean) {
    this.notifyDestroyed();
  }

  public void getSms() {
    System.out.println("---V metode---");
    
    MessageConnection conn = null;
    String url = "sms://:22001"; // Здесь должен быть указан только порт!

    try {
      conn = (MessageConnection) Connector.open(url);
      while (true) {
        Message msg = conn.receive(); // блоки
        if (msg instanceof BinaryMessage) {
          System.out.println("---Da---");
          byte[] data = ((BinaryMessage) msg).getPayloadData();
          // что-нибудь делаем

          textF = new TextBox("Введите текст sms", data.toString(), 100,
                              TextField.ANY);

          display.setCurrent(textF);
        } else {
          System.out.println("---Net---");
          String text = ((TextMessage) msg).getPayloadText();
          textF = new TextBox("Введите текст sms", text, 100, TextField.ANY);

          display.setCurrent(textF);

          // что-нибудь делаем
        }
        System.out.println("---Prohodim while---");
      }

    } catch (Exception e) {
      // ошибка
    } finally {
      if (conn != null) {
        try {
          conn.close();
          System.out.println("---con close---");
        } catch (Exception e) {}
      }
    }
  }
}



--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
Samuil
Дата 25.9.2006, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

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



Ну что неужели никто не может показать свой класс и ткнуть мне где крадется ошибка в этом коде?


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
Vladimir35
Дата 26.9.2006, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как вы инсталлируете программу? И на какой телефон? Скорее всего не правильная инсталляция...
PM MAIL WWW   Вверх
Samuil
Дата 26.9.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

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



все правильно, и смс отправляется , но не получается получать их!


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
Dancer
Дата 26.9.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

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



либо отправка делается не на тот порт из мидлета, который отправляет СМС. либо порт не зарегистрирован для прослушивания в мидлете, который должен принимать СМС. проверь это внимательно.


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
Samuil
Дата 27.9.2006, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

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



Dancer, Как узнать какой порт у телефона? И как вообще его можно зарегистрировать?


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
Dancer
Дата 27.9.2006, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

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



атрибут есть MIDlet-Push: если его прописать в JAD, то мы статически регистрируем, что если на такой-то порт будут приходить определённого рода сообщения (mms, sms, cbs) так же ещё можно предусмотреть маску, с каких номеров это будет приходить, то есть включить элемент фильтрации, так вот можно настроить, какой класс будет стартоваться при приходе данного рода сообщения на зарегистрированный порт.
А ещё лучше всего, открыть WTK 2.2 samples, там найти WMADemo и со всей этой бедой достаточно быстро самому разобраться.

Добавлено @ 13:21 
http://www.google.ru/search?hl=ru&q=MIDlet-Push&lr=

http://www.mobilab.ru/articles/9/


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
Samuil
Дата 27.9.2006, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

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



Dancer, Я пробовал сам но чтото не дошло smile , и какая ценность проги когда номера нужно прописывать в проге(если я правильно понял?)


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
Samuil
Дата 30.9.2006, 06:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

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



Люди!!! Срочно нужна Ваша помощь!!!


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

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


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



вот, у меня завалялось... дал бы ссылку, но сайта чего-то уже не нашел(может плохо искал, а может его уже и нет):
Я думаю, что статической регистрации тебе хватит.
Цитата

Технология Push

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

Push регистрация (Push Registry) дает возможность мидлетам настраивать себя для автоматического запуска без инициативы пользователя. Push управляет сетевой средой и запуском мидлета по таймеру. Таким образом, входящим соединениям и сигналу таймера разрешается пробуждать мидлет. К примеру, можно написать приложение для рабочей группы, которое будет использовать сетевую активацию, для того чтобы запуститься и обработать только что полученную почту или назначенные встречи. Или можно использовать активацию по таймеру для периодической синхронизации мидлета с сервером.

"Push" является частью системы управления приложениями (application management system (AMS)), то есть программным обеспечением устройства, ответственным за жизненный цикл каждого из приложений (инсталляцию, активацию, запуск и удаление). Рush регистрация является компонентом AMS, который используется Push API и следит за Push регистрациями.

Push Регистрация (Push Registry)

PushRegistry API позволяет регистрировать push сигналы и соединения, а также получать информацию о push соединениях. Обычно push регистрация имеет доступ к списку регистраций соединений и сигналов как в памяти, так и на постоянном носителе. 

Для поддержки сетевой акивации платформа должна поддерживать некоторые типы внешних соединений. В MIDP 1.0 единственным официально поддеживаемым типом был HttpConnection - клиентский тип сетевого соединения и, следовательно, не пригодный для push передачи посредством внешних соединений. В MIDP 2.0 поддерживаются новые типы соединений над HTTP, такие как TCP сокеты (потоковые) и UDP датаграмы (пакетные), которые могут быть использованы для внешних соединений и, в свою очередь, для push передачи. В добавок, Wireless Messaging API (WMA) делает возможной активацию, основанную на SMS. В спецификации MIDP 2.0 не определен тип внешнего соединения для push передачи, дает некоторую свободу разработчикам платформ. Тем не менее, обычно используются сокеты и датаграмы. Стоит помнить, что попытка использования неподдерживаемого соединения выльется в ConnectionNotFoundException исключение.

Для работы с внешним сетевым соединением необходим статический или динамический адрес устройства. Такой адрес обычно состоит из двух частей: адреса (например, IP адреса или телефонного номера в случае SMS) и идентификатора порта. Телефонные номера статичны по определению, в то время как IP адреса бывают и динамическими. Идентификаторы портов тоже могут быть как статическими, так и динамическими.

Для создания внешнего соединения, основанного на статичном адресе, надо вызвать метод Connector.open() с URL, описывающим протокол и локальный порт. Например:

Connector.open("socket://:5000")
Connector.open("datagram://:5000")
Connector.open("sms://:5000")

Для создания же внешнего соединения, основанного на динамическом адресе, необходимо вызвать метод Connector.open() с URL, описывающим только протокол для того, чтобы показать, что система сама должна назначить адрес. Например:

Connector.open("socket://")
Connector.open("datagram://")

При использовании адреса, назначенного системой, Вы должны опубликовать этот адрес, чтобы внешние системы могли подключиться к Вашему приложению. Если Вы используете ServerSocketConnection или UDPDatagramConnection, то Вы можете получить динамически назначенный адрес при помощи методов getLocalAddress() и getLocalPort(). Вы можете также получить имя хоста, назначенного Вашему устройству, вызовом System.getProperty("microedition.hostname"). Для публикации динмаческого адреса внешним системам Вы можете использовать HTTP.

Push Регистрация
Для того, чтобы стать push-активным, мидлет должен зарегистрироваться при помощи push регистрации, используя один из двух типов регистраций:

    * Статическая регистрация - Регистрация статических соединений происходит при установке пакета мидлетов. Вы можете указать их в MIDlet-Push атрибутах соответствующего JAD файла или JAR манифест файла. Установка провалится, если Вы попытаетесь зарегистрировать уже зарегистрированный адрес. При деинсталяции пакета мидлетов для всех связанных с ним соединений регистрация будет удалена.
    * Динамическая регистрация - Вы регистрируете динамические соединения и сигналы таймера при выполнении программы, используя PushRegistry API. 

В некоторых случаях Вы, возможно, захотите зарегистрировать статическое соединение в зависимости от какого-то условия или удостовериться, что push исключения не помешают установке мидлета. В таких случаях Вы можете использовать PushRegistry API для регистрации статического соединения и отлова любых IOExceptions или SecurityExceptions исключений. Хотя чаще всего Вы будете регистрировать статическое соединение, используя JAD файл и позволяя системе удалить регистрацию этого соединения, когда мидлет будет удаляться.

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

Статическая регистрация (с использованием MIDlet-Push атрибута)

Статические регистрации определяются атрибутом (возможно, несколькими атрибутами) MIDlet-Push в JAD или JAR манифест файлах. AMS осуществляет статическую регистрацию сразу после установки мидлета. Аналогично, когда пакет мидлетов удаляется, AMS автоматически отменяет регистрацию всех связанных с ним push соединений.

Формат MIDlet-Push атрибута следующий:

MIDlet-Push-<n>: <ConnectionURL>, <MIDletClassName>, <AllowedSender>

где

    * MIDlet-Push-<n> является именем свойства, которое определяет push регистрацию, где <n> - номер, начиная с 1. К примеру, MIDlet-Push-1. Заметьте, что можно делать более одной записи для push.
    * <ConnectionURL> - это строка URL соединения, которая определяет внешнюю точку для регистрации. Записывается в том же формате, что испольуется для вызова Connector.open(). Напрмер, socket://:5000 закрепляет для внешнего сервера сокетное соединение с портом 5000.
    * <MIDletClassName> полностью указанное имя класса мидлета, которые должен быть запущен в случае обнаружения сетевой активности в<ConnectionURL>. Например, j2medeveloper.basicpush.PushMIDlet.
    * <Allowed-Sender> - фильтр, используемый для used to ограничения круга серверов, которые могут активировать <MIDletClassName>. Можно использовать шаблоны. * означает один или более символов, а ? один символ. Например, 192.168.1.190 или 192.168.1.* или 192.168.19?.1 или просто * . 


Далее показан JAD файл для статической регистрации внешнего сокетного соединения с портом 5000 (без фильтрации адресов), которое активирует мидлет j2medeveloper.basicpush.PushMIDlet.


MIDlet-1: PushMIDlet,,j2medeveloper.basicpush.PushMIDlet
MIDlet-2: WMAMIDlet,,j2medeveloper.wma.WMAMIDlet
MIDlet-Name: MyMIDletSuite
MIDlet-Vendor: Sun Microsystems, Inc.
MIDlet-Version: 1.0
MIDlet-Jar-Size: 4735
MIDlet-Jar-URL: basicpush.jar
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
MIDlet-Push-1: socket://:5000, j2medeveloper.basicpush.PushMIDlet, *
MIDlet-Permissions: javax.microedition.io.PushRegistry, javax.microedition.io.Connector.serversocket

Листинг JAD файла с атрибутом MIDlet-Push


Если запрошенный адрес <ConnectionURL> уже используется, то инсталляция провалится. То, как факт провала подается пользователю, зависит от поставщика и реализации


Это сообщение отредактировал(а) W0LF - 30.9.2006, 12:04


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
javastic
Дата 3.10.2006, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

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



Только для этого Пуша нужен валидный сертификат для подписки, иначе будет постоянно телефон разрешения спрашивать.
Хотел для себя написать напоминалку о днях рождениях, но потом что-то перехотелось.
smile


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
AlexeyZ
Дата 3.10.2006, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет! У меня проблема с отправкой смски с коммуникатора через мой мидлет. Если нетрудно, то скинь исходник свой...
Свой мидлет я писал, основываясь на статью
http://codingclub.net/index.php?go=Article...rint&id=386

Буду рад помощи...
PM MAIL   Вверх
javastic
Дата 3.10.2006, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

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



Добро пожаловать на Винград! smile
У меня нет исходников связанных с СМС, я про Пуш писал.
;)


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

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

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


 




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


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

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