Its all covered in the project's documentation. :-)
In short, remove that SetServiceState
line it is unnecessary/bad. Doing the pairing each time is also unnecessary and a bit slow but probably not worth changing if its working well.
Docs:
1) http://32feet.codeplex.com/documentation
- "See section General Bluetooth Data Connections below. The BluetoothClient provides the Stream to read and write on -- there is no need to use virtual COM ports"
2) http://32feet.codeplex.com/wikipage?title=General%20Bluetooth%20Data%20Connections
BluetoothAddress addr
= BluetoothAddress.Parse("001122334455");
Guid serviceClass;
serviceClass = BluetoothService.SerialPort;
// - or - etc
// serviceClass = MyConsts.MyServiceUuid
//
var ep = new BluetoothEndPoint(addr, serviceClass);
var cli = new BluetoothClient();
cli.Connect(ep);
Stream peerStream = cli.GetStream();
peerStream.Write/Read ...
3) http://32feet.codeplex.com/wikipage?title=Errors
- 10049 "The requested address is not valid in its context."
- No Service with given Service Class Id is running on the remote device
i.e. Wrong Service Class Id.