You Are Here:

Community: Wiki

This page was last modified on 9 June 2009, at 08:32.

NFC PushRegistry launch and detect example

From Forum Nokia Wiki

Example of registering and launching MIDlet using NFC push registry and getting event of the tag that launched the MIDlet. Note that push registration can also be done in JAD file.

package com.nokia.nfc.sample.app;
 
import javax.microedition.contactless.ContactlessException;
import javax.microedition.contactless.DiscoveryManager;
import javax.microedition.contactless.ndef.NDEFMessage;
import javax.microedition.contactless.ndef.NDEFRecordListener;
import javax.microedition.contactless.ndef.NDEFRecordType;
import javax.microedition.io.PushRegistry;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
 
/*
* Example of launching midlet using push registry
* and getting event of the tag that launched the midlet.
*/

public class PushAndDetectExample extends MIDlet implements NDEFRecordListener {
 
private Form form;
private TextField pushTextField;
private DiscoveryManager dm;
 
protected void startApp() throws MIDletStateChangeException {
 
// Create UI
form = new Form("Form");
pushTextField = new TextField("Pushregistration", "", 255,
TextField.UNEDITABLE);
form.append(pushTextField);
Display.getDisplay(this).setCurrent(form);
 
// Register target to discovery
dm = DiscoveryManager.getInstance();
try {
dm.addNDEFRecordListener(this, new NDEFRecordType(
NDEFRecordType.EXTERNAL_RTD,
"urn:nfc:ext:yourcompany.com:pushdetectexample"));
} catch (ContactlessException e) {
// Catch ContactlessException
}
 
try {
// Make list of connections that are already registered
String[] regConns = PushRegistry.listConnections(false);
 
// Boolean to tell if wanted TargetType is already registered
boolean registered = false;
 
// Go trough list to see if wanted TargetType is already registered
for (int i = 0; i < regConns.length; i++) {
if (regConns[i]
.equals("ndef:external_rtd?name=urn:nfc:ext:yourcompany.com:pushdetectexample")) {
registered = true;
}
}
// If TargetType is not registered - register it
if (!registered) {
// Register this MIDlet to be launched when any tag with right
// TargetType is touched
PushRegistry
.registerConnection(
"ndef:external_rtd?name=urn:nfc:ext:yourcompany.com:pushdetectexample",
"com.nokia.nfc.sample.app.PushAndDetectExample", "*");
pushTextField.setString("Succeeded");
} else {
// If target was alredy regisered write that on screen
pushTextField.setString("Connection already registered");
}
} catch (Exception e) {
// In case of exception write message on screen
pushTextField.setString("Exception: " + e.getMessage());
}
}
 
protected void pauseApp() {
// TODO Auto-generated method stub
}
 
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
 
public void recordDetected(NDEFMessage ndefMessage) {
// Write notification on the form when NDEF message is detected
form.append("Record detected\n");
}
}

Related Wiki Articles

No related wiki articles found

Rate This

 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia