package tests.midlets.background;
import java.io.IOException;
import javax.microedition.io.file.FileConnection;
import javax.microedition.io.Connector;
import com.nokia.mid.s40.io.LocalMessageProtocolMessage;
import com.nokia.mid.s40.io.LocalMessageProtocolConnection;
import com.nokia.mid.s40.codec.DataEncoder;
import javax.microedition.midlet.MIDlet;
public class ForegroundEnableBackgroundServiceMIDlet extends MIDlet {
native int startedBackgroundAlarm();
public void receiveSMS() {
try {
LocalMessageProtocolConnection client = (LocalMessageProtocolConnection)Connector.open("localmsg://nokia.messaging");
// Send protocol version message
DataEncoder dataEncoder = new DataEncoder("Conv-BEB");
dataEncoder.putStart(14, "event");
dataEncoder.put(13, "name", "Common");
dataEncoder.putStart(14, "message");
dataEncoder.put(13, "name", "ProtocolVersion");
dataEncoder.put(10, "version", "2.[0-10]");
dataEncoder.putEnd(14, "message");
dataEncoder.putEnd(14, "event");
byte[] sendData = dataEncoder.getData();
client.send(sendData, 0, sendData.length);
// Receive protocol version message
LocalMessageProtocolMessage msg = client.newMessage(null);
client.receive(msg);
// Subscribe for SMS messages
dataEncoder = new DataEncoder("Conv-BEB");
dataEncoder.putStart(14, "event");
dataEncoder.put(13, "name", "SubscribeMessages");
dataEncoder.put(5, "trans_id", (long)(short)(System.currentTimeMillis() % 255));
dataEncoder.putEnd(14, "event");
sendData = dataEncoder.getData();
client.send(sendData, 0, sendData.length);
// Receive subscription OK message
msg = client.newMessage(null);
client.receive(msg);
// Wait for a new message to arrive
msg = client.newMessage(null);
client.receive(msg);
client.close();
} catch (Exception e) {
System.out.println("FAIL - Unexpected exception: " + e);
e.printStackTrace();
}
}
public void startApp() {
System.out.println("START - Background alarm started: " + startedBackgroundAlarm());
receiveSMS();
try {
FileConnection file = (FileConnection)Connector.open("file:////startBackgroundService");
if (!file.exists()) {
file.create();
}
file.close();
} catch (IOException e) {
System.out.println("Unexpected exception: " + e);
return;
}
System.out.println("DONE - Background alarm started: " + startedBackgroundAlarm());
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
};