[android-developers] Re: Can't connect to SPP device
For everybody interested, I posted this question at Stackoverflow and for the office Hours: http://stackoverflow.com/questions/2519449/spp-socket-createrfcommsockettoservicerecord-will-not-connect So if there is going to be a solution, I'm going to post it above. Thank you PhilDev On Mar 24, 11:47 am, Gavin reason...@gmail.com wrote: Gui gui.ouellet at gmail.com writes: Hi, I currently run android 1.5 on a HTC magic. I'm trying to communicate from my phone to abluetoothdevice that supports SPP. I can't seem to be able to connect to the device. I have tryed two ways to connect: 1- via the official 2.0 API using the backport-android to make it work on android 1.5 2- via the unofficialbluetoothapi 0.3 Both method give me an error around the same connection process. With API 2.0, I can discover devices and pair with them. Then i create a socket which seems to work, but when I use the .connect() method, I get this error in CatLog: IOException Unable to start Service Discovery. This is related to doSdp() in public class BluetoothSocket. Hi, I have encounter the same problem (IOException: Unable to start Service) using the backport-android on my HTC Hero. I want to ask if you have solved the problem? If yes, could you share the way? Thanks. Gavin -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe from this group, send email to android-developers+unsubscribegooglegroups.com or reply to this email with the words REMOVE ME as the subject.
[android-developers] Re: Can't connect to SPP device
As I wrote in my Email I got similiar Problems but I'm really certain that your app is the client here. There is not as much Documentation available as I hoped but here is some: http://developer.android.com/intl/de/guide/topics/wireless/bluetooth.html Greets Philipp Toelle On Mar 19, 1:12 pm, Gui gui.ouel...@gmail.com wrote: I guess this is kind of tricky. The device i'm trying to connect is a GP-GC021 made by Sure electronics, the documentation is really weak. In the documentation, it's a slave device. So that would mean it acts has a server listening for connection, and my android would be the client ... ? I can't use connect() without having a socket initialized, and using the listenRfcomm is for server apps, and mine is a client, so creatRfcomm is the right method to call...no? On Mar 18, 2:57 pm, moneytoo m...@seznam.cz wrote: createRfcommSocketToServiceRecord() is used for creating server socket, you can only call connect() on client socket. What mode does the device use you are trying to connect to? Please be aware that these unofficial API for 1.x doesn't work in server mode. On Mar 18, 5:00 pm, Gui gui.ouel...@gmail.com wrote: Hi, I currently run android 1.5 on a HTC magic. I'm trying to communicate from my phone to a bluetooth device that supports SPP. I can't seem to be able to connect to the device. I have tryed two ways to connect: 1- via the official 2.0 API using the backport-android to make it work on android 1.5 2- via the unofficial bluetooth api 0.3 Both method give me an error around the same connection process. With API 2.0, I can discover devices and pair with them. Then i create a socket which seems to work, but when I use the .connect() method, I get this error in CatLog: IOException Unable to start Service Discovery. This is related to doSdp() in public class BluetoothSocket. Searching the web, it seems this error is related to a wrong UUID ... but I am using the SPP UUID properly. So, I thought the problem could be backport android, so I tried with the unofficial API from Gerdavax (http://code.google.com/p/android-bluetooth/ ) To connect to a device with this API you first create a socket, then you connect using the .openSocket( port number) method. The weird thing is, if I try with a new port, it connects, if I try a second time, it wont work, unless I change the port. I get a similar related error of SDP. Here is my code for API 2.0, but im pretty sure its ok. public class RegulVoile extends Activity { private BluetoothAdapter adapteurGen= null; private BluetoothDevice moduleDistant = null; public String adressTrouver = null; private BluetoothSocket socketBt = null; private static final UUID MON_UUID = UUID.fromString(1101--1000-8000-00805F9B34FB); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //final TextView modeText= (TextView)this.findViewById(R.id.txt_state); //final TextView infoText= (TextView)this.findViewById(R.id.txt_name); Button connectionBt = (Button)this.findViewById(R.id.btn_connexion); adapteurGen = BluetoothAdapter.getDefaultAdapter(); connectionBt.setOnClickListener(new OnClickListener(){ public void onClick(View v){ //make SURE there is not a discovery going on. adapteurGen.cancelDiscovery(); moduleDistant = adapteurGen.getRemoteDevice(00:1D: 43:00:D1:0D); try{ socketBt = moduleDistant.createRfcommSocketToServiceRecord(MON_UUID); } catch (IOException e) { } //try the connect try { socketBt.connect(); } catch (IOException e) { try { e.printStackTrace(); socketBt.close(); } catch (IOException e2) { } } } }); } @Override protected void onStop() { try { socketBt.close(); } catch (IOException e1) { e1.printStackTrace(); } super.onStop(); } @Override protected void onDestroy() { try { socketBt.close(); } catch (IOException e1) {
[android-developers] Re: Can't connect to SPP device
I guess this is kind of tricky. The device i'm trying to connect is a GP-GC021 made by Sure electronics, the documentation is really weak. In the documentation, it's a slave device. So that would mean it acts has a server listening for connection, and my android would be the client ... ? I can't use connect() without having a socket initialized, and using the listenRfcomm is for server apps, and mine is a client, so creatRfcomm is the right method to call...no? On Mar 18, 2:57 pm, moneytoo m...@seznam.cz wrote: createRfcommSocketToServiceRecord() is used for creating server socket, you can only call connect() on client socket. What mode does the device use you are trying to connect to? Please be aware that these unofficial API for 1.x doesn't work in server mode. On Mar 18, 5:00 pm, Gui gui.ouel...@gmail.com wrote: Hi, I currently run android 1.5 on a HTC magic. I'm trying to communicate from my phone to a bluetooth device that supports SPP. I can't seem to be able to connect to the device. I have tryed two ways to connect: 1- via the official 2.0 API using the backport-android to make it work on android 1.5 2- via the unofficial bluetooth api 0.3 Both method give me an error around the same connection process. With API 2.0, I can discover devices and pair with them. Then i create a socket which seems to work, but when I use the .connect() method, I get this error in CatLog: IOException Unable to start Service Discovery. This is related to doSdp() in public class BluetoothSocket. Searching the web, it seems this error is related to a wrong UUID ... but I am using the SPP UUID properly. So, I thought the problem could be backport android, so I tried with the unofficial API from Gerdavax (http://code.google.com/p/android-bluetooth/ ) To connect to a device with this API you first create a socket, then you connect using the .openSocket( port number) method. The weird thing is, if I try with a new port, it connects, if I try a second time, it wont work, unless I change the port. I get a similar related error of SDP. Here is my code for API 2.0, but im pretty sure its ok. public class RegulVoile extends Activity { private BluetoothAdapter adapteurGen= null; private BluetoothDevice moduleDistant = null; public String adressTrouver = null; private BluetoothSocket socketBt = null; private static final UUID MON_UUID = UUID.fromString(1101--1000-8000-00805F9B34FB); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //final TextView modeText= (TextView)this.findViewById(R.id.txt_state); //final TextView infoText= (TextView)this.findViewById(R.id.txt_name); Button connectionBt = (Button)this.findViewById(R.id.btn_connexion); adapteurGen = BluetoothAdapter.getDefaultAdapter(); connectionBt.setOnClickListener(new OnClickListener(){ public void onClick(View v){ //make SURE there is not a discovery going on. adapteurGen.cancelDiscovery(); moduleDistant = adapteurGen.getRemoteDevice(00:1D: 43:00:D1:0D); try{ socketBt = moduleDistant.createRfcommSocketToServiceRecord(MON_UUID); } catch (IOException e) { } //try the connect try { socketBt.connect(); } catch (IOException e) { try { e.printStackTrace(); socketBt.close(); } catch (IOException e2) { } } } }); } @Override protected void onStop() { try { socketBt.close(); } catch (IOException e1) { e1.printStackTrace(); } super.onStop(); } @Override protected void onDestroy() { try { socketBt.close(); } catch (IOException e1) { e1.printStackTrace(); } super.onDestroy(); } } -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at
[android-developers] Re: Can't connect to SPP device
createRfcommSocketToServiceRecord() is used for creating server socket, you can only call connect() on client socket. What mode does the device use you are trying to connect to? Please be aware that these unofficial API for 1.x doesn't work in server mode. On Mar 18, 5:00 pm, Gui gui.ouel...@gmail.com wrote: Hi, I currently run android 1.5 on a HTC magic. I'm trying to communicate from my phone to a bluetooth device that supports SPP. I can't seem to be able to connect to the device. I have tryed two ways to connect: 1- via the official 2.0 API using the backport-android to make it work on android 1.5 2- via the unofficial bluetooth api 0.3 Both method give me an error around the same connection process. With API 2.0, I can discover devices and pair with them. Then i create a socket which seems to work, but when I use the .connect() method, I get this error in CatLog: IOException Unable to start Service Discovery. This is related to doSdp() in public class BluetoothSocket. Searching the web, it seems this error is related to a wrong UUID ... but I am using the SPP UUID properly. So, I thought the problem could be backport android, so I tried with the unofficial API from Gerdavax (http://code.google.com/p/android-bluetooth/ ) To connect to a device with this API you first create a socket, then you connect using the .openSocket( port number) method. The weird thing is, if I try with a new port, it connects, if I try a second time, it wont work, unless I change the port. I get a similar related error of SDP. Here is my code for API 2.0, but im pretty sure its ok. public class RegulVoile extends Activity { private BluetoothAdapter adapteurGen= null; private BluetoothDevice moduleDistant = null; public String adressTrouver = null; private BluetoothSocket socketBt = null; private static final UUID MON_UUID = UUID.fromString(1101--1000-8000-00805F9B34FB); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //final TextView modeText= (TextView)this.findViewById(R.id.txt_state); //final TextView infoText= (TextView)this.findViewById(R.id.txt_name); Button connectionBt = (Button)this.findViewById(R.id.btn_connexion); adapteurGen = BluetoothAdapter.getDefaultAdapter(); connectionBt.setOnClickListener(new OnClickListener(){ public void onClick(View v){ //make SURE there is not a discovery going on. adapteurGen.cancelDiscovery(); moduleDistant = adapteurGen.getRemoteDevice(00:1D: 43:00:D1:0D); try{ socketBt = moduleDistant.createRfcommSocketToServiceRecord(MON_UUID); } catch (IOException e) { } //try the connect try { socketBt.connect(); } catch (IOException e) { try { e.printStackTrace(); socketBt.close(); } catch (IOException e2) { } } } }); } @Override protected void onStop() { try { socketBt.close(); } catch (IOException e1) { e1.printStackTrace(); } super.onStop(); } @Override protected void onDestroy() { try { socketBt.close(); } catch (IOException e1) { e1.printStackTrace(); } super.onDestroy(); } } -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en