Developing applications for Nokia 5310 - java-me

EDIT:
Is there any other phone systems that allow connecting into the native messaging system to read input in the composer?

There is absolutely no way to do this in standard J2ME.
Symbian phones will allow you to write C++ code that comes close to doing what you describe.
You may not be able to directly query the text editor GUI control for its content but you can create your own messaging module and have your own message editor or you can read messages in the draft and outbox folders of the local store.

5310 is Series 40 based so I would assume that you can't capture input from the native messaging composer. The S40 platform is fairly closed.

Related

Is there any telephony framework in linux?

I have a USB 3g modem, On windows it comes with software with which, I can use it for calling, sending and receiving SMS. Now, I want to write similar open source application in linux ( I also want to provide DTMF detection functionality ).
In windows, we can achieve this through TAPI, what are the similar technologies/frameworks in linux? Is there any similar opensource application ( I want to use as a reference )?
Yes it is is called ofono - project started by Intel/Nokia for Maemo/Moblin. From wikipedia:
oFono is a free, open source project for mobile telephony (GSM/UMTS)
applications. It uses high-level D-Bus API for use by telephony
applications. It uses 3GPP standard. It is free software released
under the terms of the GNU General Public License v2.
And Asterisk and Freeswitch are PBX software and probably are not what you are looking for.
Freeswitch
I'm not sure about a USB modem, but for VOIP telephony, Freeswitch is excellent. It uses a generic socket API to make it extensible via any number of languages. It can handle inbound and outbound calls, text-to-speech, voice recognition, etc.
My Vodafone Merlin card was recognized as a ttySx ant it was possible to interact by simple AT-commands like with old analog modems. There were also extra commands for reasing the sim card address book, sms and I believe also for sending sms.
We use sms tools: http://smstools3.kekekasvi.com/
The SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones.
You can send short messages by simply storing text files into a special spool directory. The program monitors this directory and sends new files automatically. It also stores received short messages into another directory as text files. Binary messages (including Unicode text) are also supported, for example ring tone messages. It's also possible to send a WAP Push message to the WAP / MMS capable mobile phone.
The program can be run as a SMS daemon which can be started automatically when the operating system starts. High availability can be ensured by using multiple GSM devices (currently up to 64, this limit is easily changeable).
The program can run other external programs or scripts after events like reception of a new message, successful sending and also when the program detects a problem. These programs can inspect the related text files and perform automatic actions, for example storing information into a database (for example MySQL or Microsoft SQL Server), sending an automatic reply, forwarding messages via eMail (SMS to eMail gateway), ... and whatever you like."
Asterisk would be the usual suspect for what you want - http://www.asterisk.org/

Which mobile operating systems support J2ME?

I've been tasked with using WURFUL to determine whether or not a mobile browser is capable of downloading a J2ME app developed by my company.
I first thought I could use the "device_os" tag and filter by that, however, I'm unsure what the complete list of J2ME OS's are... any ideas?
I've been told there are no MIDP requirements, and that the application will run on any J2ME-supported handset (with two specific resolutions, which I already know how to query)
Thanks in advance.
There is no way to know all the OSes that support J2ME. Mainly because most feature handset comes with a proprietary OS which probably you have never seen before. It is a better idea try to identify the handset model and decide if it supports J2ME or not.
Another thing is, you may want to know which JSRs are supported by a specific handset. I do not know your application but probably you are using some optional JSRs that are not supported by some handsets although they have basic J2ME support.
Java ME SDK 3.0 includes a database of supported devices. Also there are other web sites that provides these kind of information. One example to those would be this J2ME Handsets web site.
If you are fine with just covering a large range of phones, you should include Symbian S60, S40, Windows Mobile, Blackberry and Android.
Symbian
Win Mob
Android
Almost every Sonyericsson phones
IMHO you don't have to worry about how many handsets support j2me because majority of the phones support it.
At least Symbian and Android.

Auto Detect Windows Mobile Device programmatically

I am writing a windows application (written entirely in C++) which reads files from a storage card on a mobile phone running Windows Mobile. The tough part is, I don't know how to make my application detect the event that a user has connected the mobile phone to the USB of laptop. I did some reading on MSDN and have written a small code using RegisterDeviceNotification, which detects whenever a USB disk is attached/removed from the laptop. However, I am unable to tweak this to make it work for phone type devices. Please help me out through any links/tutroials which explains this(preferrably C++, as I don't know .NET or C#).
Thanks
Alok
According to this article you can use RegisterDeviceNotification to get notifications when activesync detects a device has been plugged/unplugged. (See option 3 at the end of the article)
It may just be a matter of setting up the correct notification filter.
Windows Mobile devices use RNDIS, a network interface protocol behind the scenes. Hence, the RegisterDeviceNotification method still works, but you're looking for a DEV_BROADCAST_DEVICEINTERFACE, not DEV_BROADCAST_VOLUME. (i.e. dbch_devicetype==DBT_DEVTYP_DEVICEINTERFACE)
You can use RAPI or RAPI2 to detect when a Windows Mobile device connects to a PC via Active Sync or Windows Mobile Device Center. RAPI can also be used to read the files on the storage card and much more.
RAPI is simpler to program because it is a C based API. RAPI2 has more functionality than RAPI, but is an object oriented COM API. If your needs are simple and you only care about one device/connection at a time then RAPI is good enough. There are two RAPI functions used to detect connections: CeRapiInit (blocking), and CeRapiInitEx (signals an event upon connection).

Voice recognition in J2ME

I'm developing a mobile application using j2me. There I need to have a speech recognition function, so that application should be able to process and act upon the commands given by the user. What I wanted to know is
Is this technically possible (I'm a novice to j2me programming)?
If it is possible, where can I find a j2me library for speech recognition?
Thanks in advance,
Nuwan
This is technically possible, but in
reality most devices that run J2ME
aren't powerful enough to do it in pure Java code. You need to look for devices which support JSR 113 - JavaTM Speech API 2.0.
Look at JSR 113 - JavaTM Speech API 2.0.
There is a Java Speech API Implementation (JSR-113), which supposed to do speech recognition:
But, unfortunately, I don't know if any device support it :)
If you want to implement speech recognition yourself, there are many limitations in j2me such as slow performance, and impossibility to access audio data while recording.
An in-between way may be to do very simple ASR in the client (e.g. yes,no,digits etc) and for anything beyond you can send it to the server. The limits on what the client can do can change in the future in you upgrade your phone.

how can I save data in mobile phone using j2me?

How can I save data in mobile phone using j2me?
I want code examples which describes how to store data in mobile phones using j2me.
Further how to give access permission to read/write in mobile phones?
I am using netbeans 6.5 and motorola L6 phone.
Can any one tell me a code example giving how to store, give read/write permission?
You can save data in the record management store. There are some limitations though. The biggest one is that only your application will be able to read the data.
An alternative is to use the FileConnection API, which offers access to the device's file system. All modern phones should support it. However, unless the Midlet is signed, the user will be nagged to give permission to access a file.
Use the PDAPDemo example code from the Sun Wireless Toolkit.
Last time I checked it had a few error handling bugs but it is easily modifiable.
It will tell you what parts of the handset file system your application can read from and write to, both on the phone and on any eventual memory card.

Resources