<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: bluetooth code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 25 Jul 2008 01:14:06 GMT</pubDate>
    <description>DZone Snippets: bluetooth code</description>
    <item>
      <title>Using Bluetooth to control Asterisk calls.</title>
      <link>http://snippets.dzone.com/posts/show/5660</link>
      <description>Redirect an Asterisk call&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;    de61.old_status = get_status(de61.file) # found is either true or false&lt;br /&gt;    de61.old_location = get_location(de61.file) # location is either 'at home', 'gone to bed' or 'asleep'&lt;br /&gt;    &lt;br /&gt;    while count &lt; 1&lt;br /&gt;&lt;br /&gt;      puts 'old status : ' + de61.old_status.to_s&lt;br /&gt;      de61.new_status = check_device(de61.id, de61.name)&lt;br /&gt;      puts 'new_status: ' + de61.new_status.to_s&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      if de61.new_status and de61.old_status&lt;br /&gt;        if de61.old_status == false&lt;br /&gt;          puts 'connecting to the bluetooth device ...'&lt;br /&gt;          Thread.new{`rfcomm connect 0 #{de61.id}`}&lt;br /&gt;          sleep 12&lt;br /&gt;        end&lt;br /&gt;        de61.new_location = check_location(de61.id) &lt;br /&gt;      end&lt;br /&gt;      &lt;br /&gt;      puts 'old_location: ' + de61.old_location.to_s&lt;br /&gt;      puts 'new_location: ' + de61.new_location.to_s&lt;br /&gt;      update_status(de61.project, de61.new_status, de61.new_location) if ((de61.old_status != de61.new_status.to_s) or (de61.old_location != de61.new_location)) &lt;br /&gt;        &lt;br /&gt;      mystatus = ''&lt;br /&gt;      &lt;br /&gt;      if  (not de61.old_status == de61.new_status) then&lt;br /&gt;        if (de61.new_status.to_s == 'true') then&lt;br /&gt;            mystatus = ' has entered the building'&lt;br /&gt;            callto('SIP/line1')&lt;br /&gt;        elsif  (de61.new_status == false) then&lt;br /&gt;          mystatus = ' has left the building'&lt;br /&gt;          callto('SIP/07736668666@sipgate')&lt;br /&gt;        end&lt;br /&gt;        puts 'updating in or out the building'&lt;br /&gt;        ms = MyStatus.new(mystatus)&lt;br /&gt;      elsif (de61.old_location.to_s != de61.new_location.to_s)&lt;br /&gt;        if de61.old_location.match(/sleep/) and de61.new_location.match(/home|bed/) and not old_mystatus.match(/awoken/) then&lt;br /&gt;          mystatus = ' has awoken'&lt;br /&gt;        elsif (de61.old_location.match(/home|bed/)) and de61.new_location.match(/sleep/) &lt;br /&gt;          mystatus = ' has gone to sleep'           &lt;br /&gt;        elsif (de61.old_location.match(/home/)) and de61.new_location.match(/bed/) &lt;br /&gt;          mystatus = ' has gone to bed'&lt;br /&gt;        elsif de61.old_location.match(/bed/) and de61.new_location.match(/home/) &lt;br /&gt;          mystatus = ' has got out of bed'&lt;br /&gt;        end&lt;br /&gt;        puts 'updating home location'&lt;br /&gt;        ms = MyStatus.new(mystatus) if mystatus != ''&lt;br /&gt;      end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      de61.old_location = de61.new_location&lt;br /&gt;      de61.new_location = 'at home'&lt;br /&gt;      de61.old_status = de61.new_status&lt;br /&gt;      old_mystatus = mystatus&lt;br /&gt;      sleep 7&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;    &lt;br /&gt;  def callto(dialstring)&lt;br /&gt;    file = File.new('/etc/asterisk/ruby/call-to.txt','w')&lt;br /&gt;    file.puts 'Dial(' + dialstring + ')'&lt;br /&gt;    file.close&lt;br /&gt;  end&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;file: extensions.conf &lt;br /&gt;&lt;code&gt;&lt;br /&gt;exten =&gt; 5168666,n,ReadFile(dialplan1=/etc/asterisk/ruby/call-to.txt,130)&lt;br /&gt;exten =&gt; 5168666,n,Exec(${dialplan1})&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 17 Jun 2008 20:52:13 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5660</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>Using Ruby to detect Bluetooth proximity</title>
      <link>http://snippets.dzone.com/posts/show/5536</link>
      <description>This Ruby script uses the  hcitool and rfcomm to detect the proximity of a bluetooth enabled mobile phone. The signal strength in this script will return a value from 0 to 10, 0 is near and 10 is far, otherwise if there is no connection it will keep on trying.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;deviceid = '00:12:D1:E6:57:BE' &lt;br /&gt;range = ''&lt;br /&gt;count = 0&lt;br /&gt;while count &lt; 1&lt;br /&gt;  # assuming the bt device is already connected get the signal strength value.&lt;br /&gt;  range = `hcitool rssi #{deviceid}`.chomp&lt;br /&gt;  if  range.length &gt; 0&lt;br /&gt;    puts range[/\w+$/]&lt;br /&gt;  else&lt;br /&gt;    puts 'connecting to the bluetooth device ...'&lt;br /&gt;    Thread.new{`rfcomm connect 0 #{deviceid}`}&lt;br /&gt;  end&lt;br /&gt;	&lt;br /&gt;  sleep 7&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;warning (11-Jul-2008): I've  found Thread.new to be causing a problem, it appears not to remove itself from the process queue when  it is no longer required.</description>
      <pubDate>Sun, 25 May 2008 10:57:00 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5536</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>Simple Bluetooth Proximity</title>
      <link>http://snippets.dzone.com/posts/show/5528</link>
      <description>Following on from my earlier investigation into bluetooth proximity, I wanted something which returned a value which could be used to determine distance. The output from hcitool rssi ranges from 0 for close object down to -10 for far away objects.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;rfcomm connect 0 00:12:D1:E6:57:BE&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;hcitool rssi 00:12:D1:E6:57:BE&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Proximity Results:&lt;br /&gt;-4 ..  0  : Bedroom - nearest to my bed&lt;br /&gt;-4 .. -6  : Hallway&lt;br /&gt;-8 .. -9  : Livingroom - on the computer desk&lt;br /&gt;-9 .. -10 : Livingroom - nearest to the window&lt;br /&gt;</description>
      <pubDate>Tue, 20 May 2008 22:39:59 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5528</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>Detect the presence of a Bluetooth device</title>
      <link>http://snippets.dzone.com/posts/show/4928</link>
      <description>This example shows how to check for the presence of a mobile phone. The code was based on the article 'Implementing Bluetooth Proximity Detection with Asterisk, Part II' http://snipr.com/1vvi5 [nerdvittles.com]&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/ruby&lt;br /&gt;#file: whereib.rb&lt;br /&gt;&lt;br /&gt;deviceid = '00:0E:6D:29:38:EB'&lt;br /&gt;devicename = 'Nokia 6600'&lt;br /&gt;&lt;br /&gt;count = 0&lt;br /&gt;while count &lt; 1&lt;br /&gt;  if `hcitool name #{deviceid}`.chomp == devicename &lt;br /&gt;    puts devicename + ' IN RANGE'&lt;br /&gt;    puts Time.now&lt;br /&gt;  else&lt;br /&gt;    puts devicename + ' OUT OF RANGE'&lt;br /&gt;    puts Time.now&lt;br /&gt;  end&lt;br /&gt;  sleep 7&lt;br /&gt;end  &lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 27 Dec 2007 15:11:41 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4928</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>PyS60: Bluetooth GPS polling class</title>
      <link>http://snippets.dzone.com/posts/show/4781</link>
      <description>Threaded approach for reading NMEA data from a bluetooth GPS.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import thread, socket&lt;br /&gt;&lt;br /&gt;class BTGPSPoller(object):&lt;br /&gt;	def __init__(self, address):&lt;br /&gt;		address, services = socket.bt_discover(address)&lt;br /&gt;		self.target = (address, services.values()[0])&lt;br /&gt;		self.active = True&lt;br /&gt;		self.connected = False&lt;br /&gt;		self.lock = thread.allocate_lock()&lt;br /&gt;		self.sentances = list()&lt;br /&gt;		&lt;br /&gt;	def connect(self):&lt;br /&gt;		if not self.connected:&lt;br /&gt;			thread.start_new_thread(self.run, ())&lt;br /&gt;&lt;br /&gt;	def run(self):&lt;br /&gt;		print "BTGPSPoller thread activated"&lt;br /&gt;		try:&lt;br /&gt;			conn = socket.socket(socket.AF_BT, socket.SOCK_STREAM)&lt;br /&gt;			conn.connect(self.target)&lt;br /&gt;			self.connected = True&lt;br /&gt;		except:&lt;br /&gt;			print "Unable to connect"&lt;br /&gt;		&lt;br /&gt;		if self.connected:&lt;br /&gt;			try:&lt;br /&gt;				to_gps = conn.makefile("r", 0)&lt;br /&gt;			except:&lt;br /&gt;				print "Failure calling conn.makefile()"&lt;br /&gt;			while self.active:&lt;br /&gt;				#e32.ao_sleep(1)&lt;br /&gt;				msg = None&lt;br /&gt;				try:&lt;br /&gt;					msg = to_gps.readline()&lt;br /&gt;					if not msg == None and msg.startswith("$GPGGA"):&lt;br /&gt;						gps_data = msg.split(",")&lt;br /&gt;						if not gps_data[2] == "":&lt;br /&gt;							self.lock.acquire()&lt;br /&gt;							self.sentances.append(msg)&lt;br /&gt;							if len(self.sentances) &gt; 10:&lt;br /&gt;								self.sentances.pop(0)&lt;br /&gt;							self.lock.release()&lt;br /&gt;				except:&lt;br /&gt;					self.active = False&lt;br /&gt;&lt;br /&gt;			try:&lt;br /&gt;				to_gps.close()&lt;br /&gt;				conn.close()&lt;br /&gt;				self.connected = False&lt;br /&gt;				print "Closed and disconnected"&lt;br /&gt;			except:&lt;br /&gt;				self.connected = False&lt;br /&gt;				print "Unable to close"&lt;br /&gt;&lt;br /&gt;	def disconnect(self):&lt;br /&gt;		self.active = False&lt;br /&gt;		print "Disconnecting from GPS"&lt;br /&gt;&lt;br /&gt;	def getSentances(self):&lt;br /&gt;		self.lock.acquire()&lt;br /&gt;		l = self.sentances[:]&lt;br /&gt;		self.lock.release()&lt;br /&gt;		return l&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 16 Nov 2007 14:09:19 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4781</guid>
      <author>ejot (Magnus Persson)</author>
    </item>
    <item>
      <title>help!.. please </title>
      <link>http://snippets.dzone.com/posts/show/3739</link>
      <description>// description of your code here&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sorry! what does it mean "Chattando" midlet ? [J2ME - Search Service Bluetooth: protected Chattando midlet;]&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 29 Mar 2007 01:56:24 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3739</guid>
      <author>esergulum (esergulum)</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>
    <item>
      <title>Python - SendSMS over BT and AT</title>
      <link>http://snippets.dzone.com/posts/show/3041</link>
      <description>// Send SMS over Bluetooth (AT Command)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import bluetooth&lt;br /&gt;&lt;br /&gt;sockfd = bluetooth.BluetoothSocket(bluetooth.RFCOMM)&lt;br /&gt;sockfd.connect(('00:00:00:00:00:00', 1)) # BT Address&lt;br /&gt;sockfd.send('ATZ\r')&lt;br /&gt;sockfd.send('AT+CMGF=1\r')&lt;br /&gt;sockfd.send('AT+CSCA="+393359609600"\r') # Client TIM ITA&lt;br /&gt;sockfd.send('AT+CMGS="+39xxxxxxxxxx"\r') # TO PhoneNumber&lt;br /&gt;sockfd.send('Messaggio da mandare...\n')&lt;br /&gt;sockfd.send(chr(26)) # CTRL+Z&lt;br /&gt;sockfd.close()&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 26 Nov 2006 21:31:03 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3041</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>PyS60 - SendFile</title>
      <link>http://snippets.dzone.com/posts/show/3040</link>
      <description>// Send File over Bluetooth&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;from appuifw import *&lt;br /&gt;from e32socket import *&lt;br /&gt;&lt;br /&gt;try:&lt;br /&gt;    phone = bt_obex_discover()&lt;br /&gt;    file = query(u'File Selection', 'text')&lt;br /&gt;    bt_obex_send_file(phone[0], phone[1].values()[0], file)&lt;br /&gt;    note(u'File Sent')&lt;br /&gt;except Exception, error:&lt;br /&gt;    note(unicode(error), 'error')&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 26 Nov 2006 21:12:40 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3040</guid>
      <author>whitetiger ()</author>
    </item>
  </channel>
</rss>
