<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: device code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 27 Jul 2008 00:04:42 GMT</pubDate>
    <description>DZone Snippets: device code</description>
    <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>
