views:

546

answers:

5

Hi there,

Is it possible to have a j2me app on a mobile to act as a "SMS gateway" that will handle incommming messages, do a query on a database via GPRS and reply the user back?

thanks in advance.

A: 

It probably depends if your phone supports it. Have a look at the J2ME Wireless Messaging API:

The Wireless Messaging API (WMA) is an optional package for the Java 2 Platform, Mobile Edition (J2ME) that provides platform-independent access to wireless communication resources like Short Message Service (SMS).

http://java.sun.com/products/wma/overview.html

This article has some examples which can probably serve as a starting point for what you want to achieve: http://www.ibm.com/developerworks/wireless/library/wi-extendj2me/

Edit: as others have pointed out, you might not be able to receive all messages.

Daniel Hepper
A: 

I think you should check about JSR-120 documentation to confirm. But, in my thought it might be impossible. If you want to receive message by using JSR-120, you should assign specific end point(port number) to listen as like below:

serverConn = (MessageConnection)Connector.open("sms://:5000");

So, you can't catch all SMS messages. It can't be a gateway then.

Wonil
A: 

This is entirely possible on any J2ME handset that supports JSR 120 (i.e.: most of them). However as Wonil said, you can't just process ANY incoming SMS message. It has to be an SMS sent to a port number on which your app is listening (using a server connection as Wonil explained).

It wouldn't be automatic unless the app was signed (as confirmation is generally required for sending SMS and network access).

Another approach is to tether your phone to a PC using a USB cable/bluetooth/IR, open a serial connection using the phone as a modem, and write a program to listen for new SMSs using AT+CGML as described here. This would allow ANY incoming SMS to be processed (no port number required), and without any annoying confirmation prompts.

HTH

funkybro
A: 

Hi guys, thanks a lot for replying. I really appreciate that. What do you mean by "can't receive all messages"? is there any restriction? It doesn't if there is a delay in message handling, i somehow want to handle all the incomming messages :(

Praveen
A: 

In case of J2Me Sandbox Security Model, we can't access the SMS which are receieves using port 0. But the problem is the default sms port when we send a sms using our mobile phone will sent via port 0. It is a huge problem to me at all.

Is there any way in java me to receive sms via port 0 please reply.

Thanks

Buddhika Ranasinghe