<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: microedition code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sat, 17 May 2008 00:28:48 GMT</pubDate>
    <description>DZone Snippets: microedition code</description>
    <item>
      <title>J2ME - getIPdevice</title>
      <link>http://snippets.dzone.com/posts/show/3592</link>
      <description>// Retrevie IP device &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package org.socketdemo;&lt;br /&gt;&lt;br /&gt;import javax.microedition.io.Connector;&lt;br /&gt;import javax.microedition.io.SocketConnection;&lt;br /&gt;import javax.microedition.lcdui.Alert;&lt;br /&gt;import javax.microedition.lcdui.AlertType;&lt;br /&gt;import javax.microedition.lcdui.Command;&lt;br /&gt;import javax.microedition.lcdui.CommandListener;&lt;br /&gt;import javax.microedition.lcdui.Display;&lt;br /&gt;import javax.microedition.lcdui.Displayable;&lt;br /&gt;import javax.microedition.midlet.MIDlet;&lt;br /&gt;import javax.microedition.midlet.MIDletStateChangeException;&lt;br /&gt;&lt;br /&gt;public class SocketDEMO extends MIDlet implements CommandListener&lt;br /&gt;{&lt;br /&gt;	protected SocketDEMO midlet = this;&lt;br /&gt;	&lt;br /&gt;	private Alert info;&lt;br /&gt;	&lt;br /&gt;	protected void destroyApp(boolean value) throws MIDletStateChangeException&lt;br /&gt;	{&lt;br /&gt;		notifyDestroyed();&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	protected void pauseApp()&lt;br /&gt;	{&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	protected void startApp() throws MIDletStateChangeException&lt;br /&gt;	{&lt;br /&gt;		new Thread()&lt;br /&gt;		{&lt;br /&gt;			public void run()&lt;br /&gt;			{&lt;br /&gt;				SocketConnection socket = null;&lt;br /&gt;				&lt;br /&gt;				try&lt;br /&gt;				{&lt;br /&gt;					socket = (SocketConnection) Connector.open("socket://193.204.114.233:13");&lt;br /&gt;					&lt;br /&gt;					socket.openInputStream();&lt;br /&gt;					&lt;br /&gt;					info = new Alert("Info", "Current IP: " + socket.getLocalAddress() + "\nPort: " + socket.getLocalPort(), null, AlertType.INFO);&lt;br /&gt;					info.setTimeout(Alert.FOREVER);&lt;br /&gt;					info.setCommandListener(midlet);&lt;br /&gt;					&lt;br /&gt;					getDisplay().setCurrent(info);&lt;br /&gt;				}&lt;br /&gt;				catch(Exception error)&lt;br /&gt;				{&lt;br /&gt;					info = new Alert("Info", "Current IP: N/A\nPort: N/A", null, AlertType.INFO);&lt;br /&gt;					info.setTimeout(Alert.FOREVER);&lt;br /&gt;					info.setCommandListener(midlet);&lt;br /&gt;					&lt;br /&gt;					getDisplay().setCurrent(info);&lt;br /&gt;				}&lt;br /&gt;				finally&lt;br /&gt;				{&lt;br /&gt;					if(socket != null)&lt;br /&gt;					{&lt;br /&gt;						try&lt;br /&gt;						{&lt;br /&gt;							socket.close();&lt;br /&gt;						}&lt;br /&gt;						catch(Exception error)&lt;br /&gt;						{&lt;br /&gt;							&lt;br /&gt;						}&lt;br /&gt;					}&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;		}.start();&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	protected Display getDisplay()&lt;br /&gt;	{&lt;br /&gt;		return Display.getDisplay(this);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void commandAction(Command cmd, Displayable dsp)&lt;br /&gt;	{&lt;br /&gt;		if(cmd == Alert.DISMISS_COMMAND)&lt;br /&gt;		{&lt;br /&gt;			try&lt;br /&gt;			{&lt;br /&gt;				destroyApp(true);&lt;br /&gt;			}&lt;br /&gt;			catch(MIDletStateChangeException error)&lt;br /&gt;			{&lt;br /&gt;			&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 28 Feb 2007 00:15:46 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3592</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>J2ME - Alert Bloccante</title>
      <link>http://snippets.dzone.com/posts/show/3576</link>
      <description>// description of your code here&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import javax.microedition.lcdui.Alert;&lt;br /&gt;import javax.microedition.lcdui.AlertType;&lt;br /&gt;import javax.microedition.lcdui.Command;&lt;br /&gt;import javax.microedition.lcdui.CommandListener;&lt;br /&gt;import javax.microedition.lcdui.Displayable;&lt;br /&gt;&lt;br /&gt;public class MessageBox extends Alert implements CommandListener&lt;br /&gt;{&lt;br /&gt;	protected Chattando midlet;&lt;br /&gt;	&lt;br /&gt;	private boolean isReady = false;&lt;br /&gt;	&lt;br /&gt;	private Displayable dspBACK;&lt;br /&gt;	&lt;br /&gt;	public MessageBox(String title, String text, AlertType type, Chattando midlet)&lt;br /&gt;	{&lt;br /&gt;		super(title, text, null, type);&lt;br /&gt;		&lt;br /&gt;		this.midlet = midlet;&lt;br /&gt;		&lt;br /&gt;		this.setCommandListener(this);&lt;br /&gt;		this.setTimeout(Alert.FOREVER);&lt;br /&gt;		&lt;br /&gt;		// Display Precedente&lt;br /&gt;		dspBACK = midlet.getDisplay().getCurrent();&lt;br /&gt;		&lt;br /&gt;		// Mostra l'alert&lt;br /&gt;		midlet.getDisplay().setCurrent(this);&lt;br /&gt;		&lt;br /&gt;		// Attendi la conferma di chiusura&lt;br /&gt;		waitForDone();&lt;br /&gt;		&lt;br /&gt;		// Visualizza il precedente Display&lt;br /&gt;		midlet.getDisplay().setCurrent(dspBACK);&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	private void waitForDone()&lt;br /&gt;	{&lt;br /&gt;		try&lt;br /&gt;		{&lt;br /&gt;			while(!isReady)&lt;br /&gt;			{&lt;br /&gt;				synchronized(this)&lt;br /&gt;				{&lt;br /&gt;					this.wait();&lt;br /&gt;					&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;		catch(Exception error)&lt;br /&gt;		{&lt;br /&gt;			&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void commandAction(Command cmd, Displayable dsp)&lt;br /&gt;	{&lt;br /&gt;		if(cmd == Alert.DISMISS_COMMAND)&lt;br /&gt;		{&lt;br /&gt;			isReady = true;&lt;br /&gt;			&lt;br /&gt;			synchronized(this)&lt;br /&gt;			{&lt;br /&gt;				this.notify();&lt;br /&gt;			}			&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sat, 24 Feb 2007 14:20:02 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3576</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>J2ME - Create Service Bluetooth</title>
      <link>http://snippets.dzone.com/posts/show/3573</link>
      <description>// Create Service Bluetooth&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import javax.bluetooth.DiscoveryAgent;&lt;br /&gt;import javax.bluetooth.LocalDevice;&lt;br /&gt;import javax.microedition.io.Connector;&lt;br /&gt;import javax.microedition.io.StreamConnection;&lt;br /&gt;import javax.microedition.io.StreamConnectionNotifier;&lt;br /&gt;&lt;br /&gt;public class ServerChat&lt;br /&gt;{&lt;br /&gt;	private static final String CHATTANDO_UUID = "A1A2A3A4A5A6A7A8A9A0B1B2B3B4B5B6";&lt;br /&gt;	private static final String CHATTANDO_SERVICE = "Chattando";&lt;br /&gt;	&lt;br /&gt;	private boolean isReady = false;&lt;br /&gt;	&lt;br /&gt;	private StreamConnection stream_connection;&lt;br /&gt;	private StreamConnectionNotifier stream_connection_notifier;&lt;br /&gt;	&lt;br /&gt;	public ServerChat()&lt;br /&gt;	{&lt;br /&gt;		startServerChatBluetooth();&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	// Apre il servizio per la Chat&lt;br /&gt;	public void startServerChatBluetooth()&lt;br /&gt;	{&lt;br /&gt;		new Thread()&lt;br /&gt;		{&lt;br /&gt;			public void run()&lt;br /&gt;			{&lt;br /&gt;				try&lt;br /&gt;				{&lt;br /&gt;					LocalDevice.getLocalDevice().setDiscoverable(DiscoveryAgent.GIAC);&lt;br /&gt;				}&lt;br /&gt;				catch(Exception error)&lt;br /&gt;				{&lt;br /&gt;					error.printStackTrace();&lt;br /&gt;				}&lt;br /&gt;				&lt;br /&gt;				try&lt;br /&gt;				{&lt;br /&gt;					stream_connection_notifier = (StreamConnectionNotifier) Connector.open("btspp://localhost:" + CHATTANDO_UUID + ";name=" + CHATTANDO_SERVICE);&lt;br /&gt;				}&lt;br /&gt;				catch(Exception error)&lt;br /&gt;				{&lt;br /&gt;					error.printStackTrace();&lt;br /&gt;				}&lt;br /&gt;				&lt;br /&gt;				stopServerChatBluetooth();&lt;br /&gt;				&lt;br /&gt;				// Mette in ascolto il Server della Chat&lt;br /&gt;				isReady = true;&lt;br /&gt;				&lt;br /&gt;				try&lt;br /&gt;				{&lt;br /&gt;					while(isReady)&lt;br /&gt;					{&lt;br /&gt;						System.out.println("Sono in ascolto...");&lt;br /&gt;						&lt;br /&gt;						stream_connection = stream_connection_notifier.acceptAndOpen();&lt;br /&gt;						&lt;br /&gt;						System.out.println("Client Connected");&lt;br /&gt;					}&lt;br /&gt;				}&lt;br /&gt;				catch(Exception error)&lt;br /&gt;				{&lt;br /&gt;					error.printStackTrace();&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;			&lt;br /&gt;		}.start();&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	// Chiude il servizio per la Chat&lt;br /&gt;	public void stopServerChatBluetooth()&lt;br /&gt;	{&lt;br /&gt;		if(isReady)&lt;br /&gt;		{&lt;br /&gt;			isReady = false;&lt;br /&gt;			&lt;br /&gt;			try&lt;br /&gt;			{&lt;br /&gt;				stream_connection_notifier.close();&lt;br /&gt;			}&lt;br /&gt;			catch(Exception error)&lt;br /&gt;			{&lt;br /&gt;				error.printStackTrace();&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 23 Feb 2007 14:22:23 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3573</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>J2ME - Search Service Bluetooth</title>
      <link>http://snippets.dzone.com/posts/show/3572</link>
      <description>// Example Search Service Bluetooth&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import java.util.Vector;&lt;br /&gt;&lt;br /&gt;import javax.bluetooth.DeviceClass;&lt;br /&gt;import javax.bluetooth.DiscoveryAgent;&lt;br /&gt;import javax.bluetooth.DiscoveryListener;&lt;br /&gt;import javax.bluetooth.LocalDevice;&lt;br /&gt;import javax.bluetooth.RemoteDevice;&lt;br /&gt;import javax.bluetooth.ServiceRecord;&lt;br /&gt;import javax.bluetooth.UUID;&lt;br /&gt;&lt;br /&gt;public class ClientChat implements DiscoveryListener&lt;br /&gt;{&lt;br /&gt;	private static final String CHATTANDO_UUID = "A1A2A3A4A5A6A7A8A9A0B1B2B3B4B5B6";&lt;br /&gt;	private static final String CHATTANDO_SERVICE = "Chattando";&lt;br /&gt;&lt;br /&gt;	protected Chattando midlet;&lt;br /&gt;	&lt;br /&gt;	private boolean searchDone = false;&lt;br /&gt;	&lt;br /&gt;	private DiscoveryAgent discovery_agent;&lt;br /&gt;	&lt;br /&gt;	private Vector remote_device;&lt;br /&gt;	private Vector device_found;&lt;br /&gt;	&lt;br /&gt;	public ClientChat(Chattando midlet)&lt;br /&gt;	{&lt;br /&gt;		this.midlet = midlet;&lt;br /&gt;		&lt;br /&gt;		startScanBluetoothDevices();&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	// Avvia la ricerca dei dispositivi Bluetooth&lt;br /&gt;	public void startScanBluetoothDevices()&lt;br /&gt;	{&lt;br /&gt;		try&lt;br /&gt;		{&lt;br /&gt;			remote_device = new Vector();&lt;br /&gt;			device_found = new Vector();&lt;br /&gt;			&lt;br /&gt;			discovery_agent = LocalDevice.getLocalDevice().getDiscoveryAgent();&lt;br /&gt;			discovery_agent.startInquiry(DiscoveryAgent.GIAC, this);&lt;br /&gt;		}&lt;br /&gt;		catch(Exception error)&lt;br /&gt;		{&lt;br /&gt;			error.printStackTrace();&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	// Stoppa la ricerca dei dispositivi Bluetooth&lt;br /&gt;	public void stopScanBluetoothDevices()&lt;br /&gt;	{&lt;br /&gt;		discovery_agent.cancelInquiry(this);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod) &lt;br /&gt;	{&lt;br /&gt;		// Aggiungo il dispositivo solo se e' un computer (0x0100) o un cellulare (0x0200)&lt;br /&gt;		if(cod.getMajorDeviceClass() == 0x0100 || cod.getMajorDeviceClass() == 0x0200)&lt;br /&gt;			remote_device.addElement(btDevice);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void inquiryCompleted(int discType)&lt;br /&gt;	{&lt;br /&gt;		switch(discType)&lt;br /&gt;		{&lt;br /&gt;			case DiscoveryListener.INQUIRY_COMPLETED:&lt;br /&gt;														System.out.println("Device Search Completed");&lt;br /&gt;														&lt;br /&gt;														break;&lt;br /&gt;				&lt;br /&gt;			case DiscoveryListener.INQUIRY_ERROR:&lt;br /&gt;														System.out.println("Device Search Error");&lt;br /&gt;														&lt;br /&gt;														break;&lt;br /&gt;				&lt;br /&gt;			case DiscoveryListener.INQUIRY_TERMINATED:&lt;br /&gt;														System.out.println("Device Search Terminated");&lt;br /&gt;														&lt;br /&gt;														break;&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		try&lt;br /&gt;		{&lt;br /&gt;			for(int i=0, cnt=remote_device.size(); i&lt;cnt; i++)&lt;br /&gt;			{&lt;br /&gt;				discovery_agent.searchServices(new int[]{ 0x0100, 0x0200 }, new UUID[]{ new UUID(0x0003), new UUID(CHATTANDO_UUID, false) }, (RemoteDevice) remote_device.elementAt(i), this);&lt;br /&gt;				waitForSearchDone();&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;		catch(Exception error)&lt;br /&gt;		{&lt;br /&gt;			error.printStackTrace();&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	// Aspetta che la ricerca dei servizi per il dispositivo sia terminata&lt;br /&gt;	private void waitForSearchDone()&lt;br /&gt;	{&lt;br /&gt;		searchDone = false;&lt;br /&gt;		&lt;br /&gt;		try&lt;br /&gt;		{&lt;br /&gt;			while(!searchDone)&lt;br /&gt;			{&lt;br /&gt;				synchronized(this)&lt;br /&gt;				{&lt;br /&gt;					this.wait();&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;		catch(Exception error)&lt;br /&gt;		{&lt;br /&gt;			&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	public void serviceSearchCompleted(int transID, int respCode)&lt;br /&gt;	{&lt;br /&gt;		switch(respCode)&lt;br /&gt;		{&lt;br /&gt;			case DiscoveryListener.SERVICE_SEARCH_COMPLETED:&lt;br /&gt;																		System.out.println("Service Search Completed");&lt;br /&gt;																		&lt;br /&gt;																		break;&lt;br /&gt;				&lt;br /&gt;			case DiscoveryListener.SERVICE_SEARCH_DEVICE_NOT_REACHABLE:&lt;br /&gt;																		System.out.println("Service Search Device not Reachable");&lt;br /&gt;																		&lt;br /&gt;																		break;&lt;br /&gt;				&lt;br /&gt;			case DiscoveryListener.SERVICE_SEARCH_ERROR:&lt;br /&gt;																		System.out.println("Service Search Error");&lt;br /&gt;																		&lt;br /&gt;																		break;&lt;br /&gt;				&lt;br /&gt;			case DiscoveryListener.SERVICE_SEARCH_NO_RECORDS:&lt;br /&gt;																		System.out.println("Service Search No Records");&lt;br /&gt;																		&lt;br /&gt;																		break;&lt;br /&gt;				&lt;br /&gt;			case DiscoveryListener.SERVICE_SEARCH_TERMINATED:&lt;br /&gt;																		System.out.println("Service Search Terminated");&lt;br /&gt;																		&lt;br /&gt;																		break;&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		searchDone = true;&lt;br /&gt;		&lt;br /&gt;		// Risveglia il processo in attesa del completamento della ricerca dei servizi per un dispositivo&lt;br /&gt;		synchronized(this)&lt;br /&gt;		{&lt;br /&gt;			this.notifyAll();&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void servicesDiscovered(int transID, ServiceRecord[] servRecord)&lt;br /&gt;	{&lt;br /&gt;		for(int i=0, cnt=servRecord.length; i&lt;cnt; i++)&lt;br /&gt;		{&lt;br /&gt;			if(((String) servRecord[i].getAttributeValue(0x0100).getValue()).equalsIgnoreCase(CHATTANDO_SERVICE))&lt;br /&gt;			{&lt;br /&gt;				device_found.addElement(servRecord[i].getHostDevice());&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 23 Feb 2007 14:21:30 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3572</guid>
      <author>whitetiger ()</author>
    </item>
  </channel>
</rss>
