I'm trying to understand the work client-server bluetooth. Where android is client. PC is server.
I found code. This worked an samsung galaxy 10.1 (android 3.2), but does not work an samsung galaxy s(android 2.3.3) ans htc wildfire s(android 2.2).
MY_UUID = UUID.fromString("04c6093b-0000-1000-8000-00805f9b34fb");
04-25 18:32:37.023: D/BluetoothCommandService(13665): setState() 1 -> 2
04-25 18:32:37.033: I/BluetoothCommandService(13665): BEGIN mConnectThread
04-25 18:32:37.063: E/BluetoothService.cpp(102): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session)
04-25 18:32:37.103: E/BluetoothCommandService(13665): Unable to start Service Discovery
04-25 18:32:37.103: E/BluetoothCommandService(13665): java.io.IOException: Unable to start Service Discovery
04-25 18:32:37.103: E/BluetoothCommandService(13665): at android.bluetooth.BluetoothSocket$SdpHelper.doSdp(BluetoothSocket.java:367)
04-25 18:32:37.103: E/BluetoothCommandService(13665): at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:201)
04-25 18:32:37.103: E/BluetoothCommandService(13665): at com.luugiathuy.apps.remotebluetooth.BluetoothCommandService$ConnectThread.run(BluetoothCommandService.java:258)
04-25 18:32:37.103: D/BluetoothCommandService(13665): setState() 2 -> 1
Your device fails for service discovery (i think so) .
I have read about BT issues with numerous Samsung devices and HTC devices but those where specifically for L2CAP/HID profile. Soln: you could use SPP or RFCOMM if you are using L2CAP
If you are using one of the above mentioned in solution then try using with standard UUID
SPP 00001101-0000-1000-8000-00805F9B34FB
RFCOMM 00000003-0000-1000-8000-00805F9B34FB
Edit
Alternatively you may try using reflection to get your socket connection something like the below method
private static BluetoothSocket createBluetoothSocket(
int type, int fd, boolean auth, boolean encrypt, String address, int port){
try {
Constructor<BluetoothSocket> constructor = BluetoothSocket.class.getDeclaredConstructor(
int.class, int.class,boolean.class,boolean.class,String.class, int.class);
constructor.setAccessible(true);
BluetoothSocket clientSocket = (BluetoothSocket)
constructor.newInstance(type,fd,auth,encrypt,address,port);
return clientSocket;
}catch (Exception e) { return null; }
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With