views:

3747

answers:

10

I have a Samsung Spica i5700 which I already have updated to Android 2.1. I am using the phone with an application called Run.GPS (http://www.rungps.net). This application logs data such as GPS position, route, speed, bearing etc. It can also log heartrate provided the user has a Zephyr HxM bluetooth heart rate monitor ("HxM"), which I do have.

I can pair the HxM to the phone through the standard bluetooth utility. I'm prompted for the PIN, which I enter and the device is shown as 'Paired but not connected'.

In the Run.GPS application itself, I click on 'Connect Heartrate Monitor'. This times out after about 30 seconds and the error message is 'Could not connect to heartrate monitor. Please try other settings'.

I used a friend's HTC Windows Mobile as a control device to see if the HxM works there. It does. The Run.GPS application automatically sets the baud rate (initially to 9600 IIRC, though the connection also worked with higher baud rates) and it is possible to choose between various COM ports as well as a .Net COM port.

I did some testing on my Spica Android, to try to find out why the bluetooth connection doesn't work. Below are some log files that I connected over adb when I clicked on 'Connect to Heartrate Monitor' in the Run.GPS application.

I would be interested in any tips (including if I'm posting to the wrong forum here ;-)) - whether or not it's possible to experiment with the baud rate in Android etc. I still don't know if the problem is with the Run.GPS application (I've posted already on the development forum there) or with Android 2.1. I checked out another application - Endomondo - which is also a sport tracking application which supports heartrate monitor only with the HxM. There, what looked like exactly the same error occurred - I clicked on 'Connect Zephyr HxM'. For a few seconds I was shown the 'Connecting...' status, but then it timed out into 'Not Connected'. I'm thus tending towards looking at Android for the problem.

Here's the output of adb logcat while trying to connect

./adb logcat | grep Run.GPS
  D/WYNEX> (11551): Excute :: Run.GPS Trainer UV, (null)
  E/Run.GPS (11997): Cannot connect to BT device
  E/Run.GPS (11997): java.io.IOException: Service discovery failed
  E/Run.GPS (11997): at  android.bluetooth.BluetoothSocket$SdpHelper.doSdp(BluetoothSocket.java:374)
  E/Run.GPS (11997): at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:184)
  E/Run.GPS (11997): at ju.a(Unknown Source)
  E/Run.GPS (11997): at qk.j(Unknown Source)
  E/Run.GPS (11997): at fs.c(Unknown Source)
  E/Run.GPS (11997): at le.a(Unknown Source)
  E/Run.GPS (11997): at s.b(Unknown Source)
  E/Run.GPS (11997): at pb.a(Unknown Source)
  E/Run.GPS (11997): at as.a(Unknown Source)
  E/Run.GPS (11997): at am.b(Unknown Source)
  E/Run.GPS (11997): at gf.onTouchEvent(Unknown Source)
  E/Run.GPS (11997): at android.view.View.dispatchTouchEvent(View.java:3709)
  E/Run.GPS (11997): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
  E/Run.GPS (11997): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
  E/Run.GPS (11997): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1665)
  E/Run.GPS (11997): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
  E/Run.GPS (11997): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
  E/Run.GPS (11997): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1649)
  E/Run.GPS (11997): at android.view.ViewRoot.handleMessage(ViewRoot.java:1694)
  E/Run.GPS (11997): at android.os.Handler.dispatchMessage(Handler.java:99)
  E/Run.GPS (11997): at android.os.Looper.loop(Looper.java:123)
  E/Run.GPS (11997): at android.app.ActivityThread.main(ActivityThread.java:4363)
  E/Run.GPS (11997): at java.lang.reflect.Method.invokeNative(Native Method)
  E/Run.GPS (11997): at java.lang.reflect.Method.invoke(Method.java:521)
  E/Run.GPS (11997): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
  E/Run.GPS (11997): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
  E/Run.GPS (11997): at dalvik.system.NativeStart.main(Native Method)
  E/Run.GPS (11997): Cannot connect to BT device
  E/Run.GPS (11997): java.io.IOException: Service discovery failed

Here's the output of dmesg while trying to connect the heartrate monitor

<4>[74726.239833] select 11691 (.serviceModeApp), adj 15, size 3205, to kill
<4>[74726.240741] select 11739 (com.wssnps), adj 15, size 3207, to kill
<4>[74726.246870] select 11750 (id.partnersetup), adj 15, size 3219, to kill
<4>[74726.253390] select 11857 (p.bluetoothicon), adj 15, size 3299, to kill
<4>[74726.259879] select 13131 (ndroid.settings), adj 15, size 4586, to kill
<4>[74726.266372] send sigkill to 13131 (ndroid.settings), adj 15, size 4586
<7>[74733.945097] [BT] GPIO_BT_WAKE = 1
<7>[74733.945121] [BT] wake_lock(bt_wake_lock)
<7>[74733.951799] [BT] GPIO_BT_HOST_WAKE = 1
<7>[74733.951822] [BT] wake_lock timeout = 5 sec
<7>[74735.890196] [BT] GPIO_BT_HOST_WAKE = 0
<7>[74736.150987] [BT] GPIO_BT_HOST_WAKE = 1
<7>[74736.151009] [BT] wake_lock timeout = 5 sec
<7>[74737.490185] [BT] GPIO_BT_HOST_WAKE = 0
<7>[74740.073913] [BT] GPIO_BT_HOST_WAKE = 1
<7>[74740.073948] [BT] wake_lock timeout = 5 sec
<7>[74741.315336] [BT] GPIO_BT_HOST_WAKE = 0
<7>[74743.249747] [BT] GPIO_BT_HOST_WAKE = 1
<7>[74743.249768] [BT] wake_lock timeout = 5 sec
<7>[74744.865099] [BT] GPIO_BT_HOST_WAKE = 0
<7>[74745.154487] [BT] GPIO_BT_HOST_WAKE = 1
<7>[74745.154509] [BT] wake_lock timeout = 5 sec
<7>[74748.852534] [BT] GPIO_BT_HOST_WAKE = 0
<7>[74749.156256] [BT] GPIO_BT_HOST_WAKE = 1
<7>[74749.156278] [BT] wake_lock timeout = 5 sec
<7>[74750.490018] [BT] GPIO_BT_HOST_WAKE = 0
<4>[74754.230424] select 11691 (.serviceModeApp), adj 15, size 3191, to kill
<4>[74754.231326] select 11739 (com.wssnps), adj 15, size 3193, to kill
<4>[74754.237473] select 11750 (id.partnersetup), adj 15, size 3205, to kill
<4>[74754.243950] select 11857 (p.bluetoothicon), adj 15, size 3283, to kill
<4>[74754.250452] select 13140 (com.svox.pico), adj 15, size 3465, to kill
<4>[74754.256787] send sigkill to 13140 (com.svox.pico), adj 15, size 3465 

Here's the logcat output when I click 'connect zephyr' in Endomondo

I/PUSH Event(19147): MotionEvent : QueuedEvent{43d7d480 MotionEvent{440b5680 action=1 x=228.28438 y=212.55624 pressure=0.0 size=0.0}} 
D/BluetoothZephyrService(23605): connect to: 00:07:80:88:F5:AD
D/BluetoothSocket(23605): BluetoothSocket created fd: -1uuid00001101-0000-1000-8000-00805f9b34fbport -1                     
D/BluetoothSocket.cpp(23605): initSocketNative      
I/BLZ20_WRAPPER(23605): blz20_wrp_socket: fam 31, type 1, prot BTPROTO_RFCOMM                                                      
D/BLZ20_WRAPPER(23605): blz20_init: initializing...       
D/BTL_IFC_WRP(23605): wsactive_init: init active list                                                                          
I/BTL_IFC (23605): main_client_thread: Client main thread starting                                                               
D/BLZ20_WRAPPER(23605): blz20_init: success       
I/BTL_IFC (23605): BTL_IFC_RegisterSubSystem: Register subsystem [(null)]                                                         
I/BTL_IFC (23605): btl_ifc_ctrl_connect: Connect control channel for subsystem [(null)]                                           
D/BTL_IFC_WRP(23605): wrp_sock_create: CTRL 
D/BTL_IFC_WRP(23605): wrp_alloc_new_sock: wrp_alloc_new_sock sub 1                                               
D/BTL_IFC_WRP(23605): wrp_sock_create: 28
D/BTL_IFC_WRP(23605): wrp_sock_connect: wrp_sock_connect 127.0.0.1:9000 (28)                                      
I/BTL-IFS (21889): main_server_thread: [CTRL] Client connected (14)                                               
I/BTL_IFC_WRP(23605): wrp_sock_connect: Connected. (28)                                                           
I/BTL_IFC (23605): send_ctrl_msg: [BTL_IFC CTRL] send BTLIF_REGISTER_SUBSYS_REQ ((null)) 0 pbytes (hdl 28)      
I/BTL-IFS (21889): attach_client: multiclient index 1                                                                       
I/BTL-IFS (21889): attach_client: ######## Attached client subsystem  (14) ########                                                  
I/BTL-IFS (21889): btl_if_notify_local_event: Notify local event BTLIF_SUBSYSTEM_ATTACHED 
D/        (21889): btlif_bts_api_ctrl_cb: btlif_bts_api_ctrl_cb : id BTLIF_SUBSYSTEM_ATTACHED (4112) on hdl 14                 
I/        (21889): btlif_rfc_ctrl_chan_attached: client attached ctrl handle 14                                               
D/BTL-IFS (21889): send_registration_rsp: send_registration_rsp [0]                                                             
I/BTL-IFS (21889): send_ctrl_msg: [BTL_IFS CTRL] send BTLIF_REGISTER_SUBSYS_RSP (CTRL) 2 pbytes (hdl 14)                        
D/BTL_IFC (23605): BTL_IFC_RegisterSubSystem: add new ctrl fd to active set                                                     
D/BTL_IFC_WRP(23605): wrp_wsock_create: (null)     
D/BTL_IFC_WRP(23605): wrp_alloc_new_sock: wrp_alloc_new_sock sub 15                                                            
D/BTL_IFC_WRP(23605): wrp_wsock_create: 32     
D/BLZ20_WRAPPER(23605): btsk_alloc_add: success    
I/BLZ20_WRAPPER(23605): blz20_wrp_socket: return 32                                                                            
D/BLZ20_WRAPPER(23605): blz20_wrp_setsockopt:  fd (-1:32), bta -1, rc 0, wflags 0x0                                                
I/BLZ20_WRAPPER(23605): blz20_wrp_setsockopt: configure rfcomm lm mode 0x26, (master:0, auth 1, enc 1)                       
I/BLZ20_WRAPPER(23605): blz20_wrp_setsockopt: success
D/BLZ20_WRAPPER(23605): blz20_wrp_setsockopt:  fd (-1:32), bta -1, rc 0, wflags 0x0                                            
I/BLZ20_WRAPPER(23605): blz20_wrp_setsockopt: configure rfcomm sndbuf len 71680 bytes                                            
I/BLZ20_WRAPPER(23605): blz20_wrp_setsockopt: success 
D/BluetoothSocket.cpp(23605): ...fd 32 created (RFCOMM, lm = 26)                                                               
D/BluetoothSocket.cpp(23605): initSocketFromFdNative              
D/BluetoothZephyrService(23605): setState() 0 -> 2                                                                              
I/BluetoothZephyrService(23605): BEGIN mConnectThread      
E/BluetoothService.cpp(19147): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session) 
D/BluetoothSocket(23605): connect                  
D/BluetoothSocket(23605): doSdp                 
I/BluetoothService.cpp(19147): ... Object Path = /org/bluez/21902/hci0/dev_00_07_80_88_F5_AD      
I/BluetoothService.cpp(19147): ... Pattern = 00001101-0000-1000-8000-00805f9b34fb, strlen = 36                                 
I/BluetoothZephyr(23605): MESSAGE_STATE_CHANGE: 2                                                                             
D/DEVICE  (21902):     *************DiscoverServices********                         
I/DTUN_HCID(21902): dtun_client_get_remote_svc_channel: starting discovery on  (uuid16=0x0011)                                               
I/DTUN_HCID(21902):    bdaddr=00:07:80:88:F5:AD                     
I/DTUN_CLNT(21902):     Client calling DTUN_METHOD_DM_GET_REMOTE_SERVICE_CHANNEL (id 4)                                       
I/        (21889): DTUN_ReceiveCtrlMsg: [DTUN] Received message [BTLIF_DTUN_METHOD_CALL] 4354                                   
I/        (21889): handle_method_call: handle_method_call :: received DTUN_METHOD_DM_GET_REMOTE_SERVICE_CHANNEL (id 4), len 134 
E/BTLD    (21889): ****************search UUID = 1101***********         
I//system/bin/btld(21888):              btapp_dm_GetRemoteServiceChannel()                              
W/BTLD    (21889): SDP - Rcvd conn cnf with error: 0x4  CID 0x42                                                               
I/BTL-IFS (21889): send_ctrl_msg: [BTL_IFS CTRL] send BTLIF_DTUN_SIGNAL_EVT (CTRL) 13 pbytes (hdl 10)                          
I/DTUN_CLNT(21902): dtun-rx signal [DTUN_SIG_DM_RMT_SERVICE_CHANNEL] (id 42) len 15                                           
I/DTUN_HCID(21902): dtun_dm_sig_rmt_service_channel: success=1, service=00000000                                                          
E/DTUN_HCID(21902): discovery unsuccessful!             
V/BluetoothEventRedirector(21741): Received android.bleutooth.device.action.UUID  
E/CachedBluetoothDevice(21741): onUuidChanged: Time since last connect9266997                                                            
D/BluetoothService(19147): Cleaning up failed UUID channel lookup: 00:07:80:88:F5:AD 00001101-0000-1000-8000-00805f9b34fb                                       
D/BluetoothSocket(23605): onRfcommChannelFound -1                                                                             
D/BluetoothZephyrService(23605): setState() 2 -> 1                                                                             
D/BluetoothSocket(23605): close                
D/BluetoothSocket(23605): cancel            
D/BluetoothSocket.cpp(23605): abortNative         
D/BluetoothSocket.cpp(23605): ...asocket_abort(32) complete                                                                    
D/BluetoothSocket.cpp(23605): destroyNative        
D/BluetoothSocket.cpp(23605): ...asocket_destroy(32) complete                                                                       
D/BluetoothZephyrService(23605): start         
D/BluetoothSocket(23605): close              
D/BluetoothSocket(23605): BluetoothSocket created fd: -1uuidnullport 1                                                   
D/BluetoothSocket.cpp(23605): initSocketNative         
I/BLZ20_WRAPPER(23605): blz20_wrp_socket: fam 31, type 1, prot BTPROTO_RFCOMM                                                           
D/BTL_IFC_WRP(23605): wrp_wsock_create: (null)  
D/BTL_IFC_WRP(23605): wrp_alloc_new_sock: wrp_alloc_new_sock sub 15                                                            
D/BTL_IFC_WRP(23605): wrp_wsock_create: 32  
D/BLZ20_WRAPPER(23605): btsk_alloc_add: success    
D/BLZ20_WRAPPER(23605): btsk_dump_list:  fd (-1:32), bta -1, rc 0, wflags 0x0                                                
I/BLZ20_WRAPPER(23605): blz20_wrp_socket: return 32                                                                             
E/BLZ20_WRAPPER(23605): ##### ERROR : btsk_check_duplicates: WARNING : duplicate entries found for key 4, val 32#####          
D/BLZ20_WRAPPER(23605): btsk_check_duplicates:  fd (-1:32), bta -1, rc 0, wflags 0x0                                        
D/BLZ20_WRAPPER(23605): btsk_check_duplicates:  fd (-1:32), bta -1, rc 0, wflags 0x0                                          
E/BLZ20_WRAPPER(23605): ##### ERROR : btsk_check_duplicates: ### ASSERT : frameworks/base/core/jni/../../../../vendor/brcm/adaptation/btl-if/client/blz20_wrapper.c line 534 duplicates found (2) ########     
D/BLZ20_WRAPPER(23605): blz20_wrp_setsockopt:  fd (-1:32), bta -1, rc 0, wflags 0x0                                        
I/BLZ20_WRAPPER(23605): blz20_wrp_setsockopt: configure rfcomm lm mode 0x26, (master:0, auth 1, enc 1)                       
I/BLZ20_WRAPPER(23605): blz20_wrp_setsockopt: success  
E/BLZ20_WRAPPER(23605): ##### ERROR : btsk_check_duplicates: WARNING : duplicate entries found for key 4, val 32#####           
D/BLZ20_WRAPPER(23605): btsk_check_duplicates:  fd (-1:32), bta -1, rc 0, wflags 0x0                                           
D/BLZ20_WRAPPER(23605): btsk_check_duplicates:  fd (-1:32), bta -1, rc 0, wflags 0x0                                          
E/BLZ20_WRAPPER(23605): ##### ERROR : btsk_check_duplicates: ### ASSERT : frameworks/base/core/jni/../../../../vendor/brcm/adaptation/btl-if/client/blz20_wrapper.c line 534 duplicates found (2) ########     
D/BLZ20_WRAPPER(23605): blz20_wrp_setsockopt:  fd (-1:32), bta -1, rc 0, wflags 0x0                                           
I/BLZ20_WRAPPER(23605): blz20_wrp_setsockopt: configure rfcomm sndbuf len 71680 bytes                                          
I/BLZ20_WRAPPER(23605): blz20_wrp_setsockopt: success 
D/BluetoothSocket.cpp(23605): ...fd 32 created (RFCOMM, lm = 26)                                                        
D/BluetoothSocket.cpp(23605): initSocketFromFdNative         
D/BluetoothSocket(23605): bindListen                    
D/BluetoothSocket.cpp(23605): bindListenNative                 
I/BLZ20_WRAPPER(23605): blz20_wrp_bind: s 32   
E/BLZ20_WRAPPER(23605): ##### ERROR : btsk_check_duplicates: WARNING : duplicate entries found for key 4, val 32#####           
D/BLZ20_WRAPPER(23605): btsk_check_duplicates:  fd (-1:32), bta -1, rc 0, wflags 0x0                                           
D/BLZ20_WRAPPER(23605): btsk_check_duplicates:  fd (-1:32), bta -1, rc 0, wflags 0x0                                           
E/BLZ20_WRAPPER(23605): ##### ERROR : btsk_check_duplicates: ### ASSERT : frameworks/base/core/jni/../../../../vendor/brcm/adaptation/btl-if/client/blz20_wrapper.c line 534 duplicates found (2) ########     
D/BLZ20_WRAPPER(23605): blz20_wrp_bind: bind socket fd (-1:32), bta -1, rc 0, wflags 0x0                                       
D/BLZ20_WRAPPER(23605): __bind_prot_rfcomm: rc_chan 1                                                                       
D/BTL_IFC_WRP(23605): wrp_sock_bind: wrp_sock_bind on port 9050                                                             
I/BLZ20_WRAPPER(23605): blz20_wrp_listen: s 32, backlog 1                                                                      
E/BLZ20_WRAPPER(23605): ##### ERROR : btsk_check_duplicates: WARNING : duplicate entries found for key 4, val 32#####            
D/BLZ20_WRAPPER(23605): btsk_check_duplicates:  fd (-1:32), bta -1, rc 1, wflags 0x0                                         
D/BLZ20_WRAPPER(23605): btsk_check_duplicates:  fd (-1:32), bta -1, rc 0, wflags 0x0                                        
E/BLZ20_WRAPPER(23605): ##### ERROR : btsk_check_duplicates: ### ASSERT : frameworks/base/core/jni/../../../../vendor/brcm/adaptation/btl-if/client/blz20_wrapper.c line 534 duplicates found (2) ########     
D/BLZ20_WRAPPER(23605): blz20_wrp_listen:  fd (-1:32), bta -1, rc 1, wflags 0x0                                             
D/BLZ20_WRAPPER(23605): btlif_send_msg_wait_response: send BTLIF_BTS_RFC_LISTEN_REQ, wait for |BTLIF_BTS_RFC_LISTEN_RSP|                           
D/BTL_IFC (23605): BTL_IFC_CtrlSend: BTL_IFC_CtrlSend    
I/BTL_IFC (23605): send_ctrl_msg: [BTL_IFC CTRL] send BTLIF_BTS_RFC_LISTEN_REQ ((null)) 20 pbytes (hdl 28)                    
D/        (21889): btlif_bts_api_ctrl_cb: btlif_bts_api_ctrl_cb : id BTLIF_BTS_RFC_LISTEN_REQ (4433) on hdl 14                  
I/        (21889): btlif_rfc_listen_req: Allocated dynamic server channel 4                                                  
D/        (21889): bts_chan_alloc_add: bts_chan_alloc_add : success (tot 1)                                                   
D/        (21889): bts_chan_dump_all: ### channel list ###                                                                       
D/        (21889): bts_chan_dump_all:  type 3, dhdl -1, bta_hdl -1, scn -1, phdl 65535, lstpnd 0, -1:-1 (L:D)
I/        (21889): btlif_rfc_listen_req: start rfcomm server on scn 4, role 1, sec_mask 0x30
D/        (21889): jw_if_rfcomm_srv_cback: event=BTA_JV_RFCOMM_START_EVT
I/        (21889): jw_if_rfcomm_srv_cback: [BTA_JV_RFCOMM_START_EVT] start status: 0, handle:0, security id: 47
I/        (21889): jv_rfc_srv_listen_started: jv_rfc_srv_listen_started
I/BTL-IFS (21889): send_ctrl_msg: [BTL_IFS CTRL] send BTLIF_BTS_RFC_LISTEN_RSP () 17 pbytes (hdl 14)
I/BTL_IFC (23605): btl_ifc_ctrl_rx: [BTL_IFC CTRL] recv BTLIF_BTS_RFC_LISTEN_RSP ((null)) 19 pbytes (hdl 28)
I/BLZ20_WRAPPER(23605): btlif_ctrl_callback: btlif_ctrl_callback : msg id BTLIF_BTS_RFC_LISTEN_RSP
E/BLZ20_WRAPPER(23605): ##### ERROR : btsk_check_duplicates: WARNING : duplicate entries found for key 4, val 32#####
D/BLZ20_WRAPPER(23605): btsk_check_duplicates:  fd (-1:32), bta -1, rc 1, wflags 0x2
D/BLZ20_WRAPPER(23605): btsk_check_duplicates:  fd (-1:32), bta -1, rc 0, wflags 0x0
E/BLZ20_WRAPPER(23605): ##### ERROR : btsk_check_duplicates: ### ASSERT : frameworks/base/core/jni/../../../../vendor/brcm/adaptation/btl-if/client/blz20_wrapper.c line 534 duplicates found (2) ########
I/BLZ20_WRAPPER(23605): btlif_process_listen_rsp: listen response for bta hdl 0
D/BLZ20_WRAPPER(23605): btlif_signal_event:  fd (-1:32), bta 0, rc 1, wflags 0x2
D/BLZ20_WRAPPER(23605): btlif_signal_event: event BTLIF_BTS_RFC_LISTEN_RSP matched
D/BLZ20_WRAPPER(23605): btlif_send_msg_wait_response: unblocked fd (-1:32), bta 0, rc 1, wflags 0x0
I/BLZ20_WRAPPER(23605): __listen_prot_rfcomm: success, scn 4
D/BTL_IFC_WRP(23605): wrp_sock_listen_bl: wrp_sock_listen_bl : fd 32 127.0.0.1:9050 backlog 1
I/BLZ20_WRAPPER(23605): __listen_prot_rfcomm: success
D/BluetoothSocket.cpp(23605): ...bindListenNative(32) success
I/DTUN_CLNT(21902):     Client calling DTUN_METHOD_DM_ADD_SDP_REC (id 17)
I/        (21889): DTUN_ReceiveCtrlMsg: [DTUN] Received message [BTLIF_DTUN_METHOD_CALL] 4354
I/        (21889): handle_method_call: handle_method_call :: received DTUN_METHOD_DM_ADD_SDP_REC (id 17), len 270
I/        (21889): btapp_bts_convert_rc_chan_to_scn: found scn 4
I/BTL-IFS (21889): send_ctrl_msg: [BTL_IFS CTRL] send BTLIF_DTUN_SIGNAL_EVT (CTRL) 12 pbytes (hdl 10)
I/DTUN_CLNT(21902): dtun-rx signal [DTUN_SIG_DM_SDP_REC_HANDLE] (id 50) len 14
I/DTUN_HCID(21902): dtun_dm_sig_sdp_rec_handle: handle = 0x10006
D/BluetoothService(19147): new handle 0
I/BluetoothZephyr(23605): MESSAGE_STATE_CHANGE: 1
I/BluetoothZephyr(23605): Unable to connect device
D/BluetoothZephyrService(23605): setState() 1 -> 1
D/BluetoothZephyrService(23605): BEGIN mAcceptThreadThread[Thread-9,5,main]
D/BluetoothSocket(23605): accept
D/BluetoothSocket.cpp(23605): acceptNative
I/BluetoothZephyr(23605): MESSAGE_STATE_CHANGE: 1
D/WynexActivity(19215): <><><>ACTION ::android.intent.action.TIME_TICK
D/LocationMasfClient(19147): getNetworkLocation(): Location not found in cache, making network request
D/ProtoRequestListener(19147): requestFailed()
I/power   (19147): *** set_screen_state 0
A: 

I got the same problem using an OBD-II Bluetooth connector... I can pair, but can not connect. It seems that is a stack problem. I'm using XXJD1 firmware on the I5700.

Shadowbr
+3  A: 

I got this information from the gps-sport forum. Not sure what to do with it though...

See also http://www.gps-sport.net/forums/thread/1532-0/Keine-Sprachausgabe-auf-HTC-Desire

Cross posting this entry from the software category. The thread over there deals with the Zephyr HxM as a secondary issue - meaning it mightn't be easy to find...

24.04.2010 16:47:05 UTC geändert am 24.04.2010 17:03:03 UTC

A fix to the bluetooth connection problem

Hi

If this problem still is not resolved, the code below describes how to make the connection work with Android 2.1 (Tested on HTC Desire). Just replace "00:07:80:89:EE:EB" with the MAC of your HXM to make it connect. After the connection is successful, a regular method with input = socket.getInputStream() can be used.

BluetoothDevice hxm = BluetoothAdapter.getDefaultAdapter().getRemoteDevice("00:07:80:89:EE:EB");
Method m = hxm.getClass().getMethod("createRfcommSocket", new Class[]{int.class});
socket = (BluetoothSocket)m.invoke(hxm, Integer.valueOf(1));
socket.connect();

Hope the fix will be out very soon =)

Best regards Espen S. Nygaard

Ciaran
I tried this with my i5700 and this little experiment ended with the following error in the LogCat: "wrp_sock_create: socket create failed (Permission denied)". (My application requested both BLUETOOTH and BLUETOOTH_ADMIN permissions, so that shouldn't be a problem.)
Kalmi
I should also mention that I'm unable to create a working Bluetooth SPP connection on this phone. I have tried quite a few ways...
Kalmi
Probably the same issue: http://groups.google.com/group/android-developers/browse_thread/thread/a705aa4b8f865cc1
Kalmi
A: 

Just for recordkeeping, here are the logcat traces from the small python application which I wrote to produce the problem, as well as from the Run.GPS app:

  1. pastebin.org/191806 - trace from my python app
  2. pastebin.org/191824 - source of my python app
  3. pastebin.org/191830 - trace from my Run.GPS
Ciaran
A: 

Just saw this in the logcat

V/BluetoothEventRedirector(21741): Received android.bleutooth.device.action.UUID

I assume that android.*bleu*tooth (i.e. misspelled android.bluetooth) is a string which is outputted as a message and thus has no effect on the code. At least, I would hope so...

Ciaran
A: 

This thread over at Google Groups (android-developers) is also interesting: ' Is Google working on the Bluetooth bug? Any estimated date of completion? '

------ VERSION INFO ------ currenttime=Sat May 1 21:31:48 CEST 2010 kernel.version=Linux version 2.6.29 (root@SE-S611) (gcc version 4.3.1 (for S3C64XX Samsung Electronics AP Development Team) ) #2 Sat Mar 13 02:28:48 KST 2010

kernel.cmdline=# begin build properties

autogenerated by buildinfo.sh

ro.build.id=ECLAIR ro.build.display.id=ECLAIR.XXJCB ro.build.version.incremental=XXJCB ro.build.version.sdk=7 ro.build.version.codename=REL ro.build.version.release=2.1-update1 ro.build.date=2010. 03. 13. (토) 02:07:55 KST ro.build.date.utc=1268413675 ro.build.type=user ro.build.user=root ro.build.host=SE-S611 ro.build.tags=ota-rel-keys,release-keys ro.product.model=GT-I5700 ro.product.brand=Samsung ro.product.name=GT-I5700 ro.product.device=GT-I5700 ro.product.board=GT-I5700 ro.product.cpu.abi=armeabi ro.product.manufacturer=Samsung ro.product.locale.language=en ro.product.locale.region=GB ro.wifi.channels= ro.board.platform=s3c6410

ro.build.product is obsolete; use ro.product.device

ro.build.product=GT-I5700

Do not try to parse ro.build.description or .fingerprint

ro.build.description=GT-I5700-user 2.1-update1 ECLAIR XXJCB ota-rel- keys,release-keys ro.build.fingerprint=Samsung/GT-I5700/GT-I5700/GT-I5700:2.1-update1/ ECLAIR/XXJCB:user/ota-rel-keys,release-keys

Samsung Specific Properties

ro.build.PDA=I570EXXJCB ro.build.Phone=I570EXXJCB ro.build.HW=REV 0.1 ro.build.RFCallDate=2009.02.25 ro.build.hidden_ver=I570EXXJCB ro.build.changelist=193516 ro.build.FUSDLMode=Change ro.build.SupportFUS=TRUE ro.build.CGMM=GT-I5700 ro.build.GMM=GT-I5700

end build properties

#

system.prop for spica

Ciaran
A: 

This logcat trace is also quite interesting. This was done using the python script available on pastebin.com (see previous post). The difference is that this time I manually unpaired the bluetooth device (HxM) in the Spica bluetooth settings first. When I ran the Python script, it first asked me to allow bluetooth access. Then, I got the message that I needed to pair the device. Once I paired the device (entered '1234' in the pop-up dialog), this logcat trace came about....

I/DTUN_CLNT( 7704):     Client calling DTUN_METHOD_DM_PIN_REPLY (id 9)
I/        ( 7691): DTUN_ReceiveCtrlMsg: [DTUN] Received message [BTLIF_DTUN_METHOD_CALL] 4354
I/        ( 7691): handle_method_call: handle_method_call :: received DTUN_METHOD_DM_PIN_REPLY (id 9), len 23
W/InputManagerService( 1905): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@43f16da0 (uid=1000 pid=7742)
W/IInputConnectionWrapper( 7742): showStatusIcon on inactive InputConnection
I/BTL-IFS ( 7691): send_ctrl_msg: [BTL_IFS CTRL] send BTLIF_DTUN_SIGNAL_EVT (CTRL) 29 pbytes (hdl 10)
I/DTUN_CLNT( 7704): dtun-rx signal [DTUN_SIG_DM_AUTH_COMP] (id 46) len 31
I/DTUN_HCID( 7704):     ***  sig_auth_comp status: 0 ***
I/DTUN_HCID( 7704): 
I/SECURITY( 7704): link_key_notify (sba=43:25:34:74:04:A3, dba=00:07:80:88:F5:AD, type=0)
D/ADAPTER ( 7704): adapter_get_device(00:07:80:88:F5:AD)
E/DBUS-HCI( 7704): ...get_auth_requirements unimplemented
D/ADAPTER ( 7704): adapter_get_device(00:07:80:88:F5:AD)
I/DBUS-HCI( 7704): hcid_dbus_conn_complete: adding device = 0xfbb0 handle = 256
I/ADAPTER ( 7704): adapter_add_connection: adding device = 0xfbb0 handle = 256
I/BluetoothEventLoop.cpp( 1905): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/7704/hci0/dev_00_07_80_88_F5_AD
D/BluetoothEventLoop( 1905): Device property changed:00:07:80:88:F5:ADproperty:Connected
I/BluetoothService( 1905): ACL connected, mAclLinkCount = 1
D/BluetoothA2dpService( 1905): Received intent Intent { act=android.bluetooth.device.action.ACL_CONNECTED (has extras) }
D/BluetoothA2dpService( 1905): [KJH] device - 00:07:80:88:F5:AD, SinkPriority - 0, isSinkDevice - false, aclCount - 1
I/DBUS-HCI( 7704): hcid_dbus_bonding_process_complete: status=00
D/ADAPTER ( 7704): adapter_get_device(00:07:80:88:F5:AD)
D/DEVICE  ( 7704): setting timer for reverse service discovery
I/BluetoothEventLoop.cpp( 1905): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/7704/hci0/dev_00_07_80_88_F5_AD
D/BluetoothEventLoop( 1905): Device property changed:00:07:80:88:F5:ADproperty:Paired
D/BluetoothService( 1905): ***** 00:07:80:88:F5:AD bond state 11 -> 12 (0)
D/BT HSHFP( 1961): Received intent Intent { act=android.bluetooth.device.action.BOND_STATE_CHANGED (has extras) }
V/BluetoothEventRedirector( 7742): Received android.bluetooth.device.action.BOND_STATE_CHANGED
D/BluetoothA2dpService( 1905): Received intent Intent { act=android.bluetooth.device.action.BOND_STATE_CHANGED (has extras) }
D/BluetoothA2dpService( 1905): *******************************************************
I/BluetoothA2dpService( 1905): Class of Bonded Device : 0x1f00
I/DBUS-HCI( 7704): hcid_dbus_bonding_process_complete: status=00
D/ADAPTER ( 7704): adapter_get_device(00:07:80:88:F5:AD)
I/DBUS-HCI( 7704): hcid_dbus_bonding_process_complete: no pending auth request
D/BluetoothA2dpService( 1905): Major Class of Bonded Device : ???
D/BluetoothA2dpService( 1905): Minor Class of Bonded Device : ???
W/BTLD    ( 7691): ccb timer ticks: 0
D/BluetoothA2dpService( 1905): *******************************************************
W/BTLD    ( 7691): info:x0
I/BTL-IFS ( 7691): send_ctrl_msg: [BTL_IFS CTRL] send BTLIF_DTUN_SIGNAL_EVT (CTRL) 10 pbytes (hdl 10)
I/DTUN_CLNT( 7704): dtun-rx signal [DTUN_SIG_DM_LINK_UP] (id 49) len 12
D/DTUN_HCID( 7704):             dtun_dm_sig_link_up()
I/DTUN_HCID( 7704): dtun_dm_sig_link_up: dummy_handle = 257
D/ADAPTER ( 7704): adapter_get_device(00:07:80:88:F5:AD)
I/DBUS-HCI( 7704): hcid_dbus_conn_complete: adding device = 0xfbb0 handle = 257
E/ADAPTER ( 7704): Unable to add connection 257
D/dalvikvm( 7720): GC freed 63 objects / 17040 bytes in 352ms
D/BT HSHFP( 1961): Loaded priority 00:07:80:88:F5:AD = 0
I/dalvikvm-heap( 7720): Grow heap (frag case) to 5.849MB for 1060016-byte allocation
D/dalvikvm( 7720): GC freed 3 objects / 1060104 bytes in 81ms
D/DTUN_HCID( 7704):             dtun_client_get_remote_services()
I/DTUN_HCID( 7704): dtun_client_get_remote_services: Get remote services on 
I/DTUN_CLNT( 7704):     Client calling DTUN_METHOD_DM_GET_REMOTE_SERVICES (id 5)
I/        ( 7691): DTUN_ReceiveCtrlMsg: [DTUN] Received message [BTLIF_DTUN_METHOD_CALL] 4354
I/        ( 7691): handle_method_call: handle_method_call :: received DTUN_METHOD_DM_GET_REMOTE_SERVICES (id 5), len 6
I/BTL-IFS ( 7691): send_ctrl_msg: [BTL_IFS CTRL] send BTLIF_DTUN_SIGNAL_EVT (CTRL) 14 pbytes (hdl 10)
I/DTUN_CLNT( 7704): dtun-rx signal [DTUN_SIG_DM_RMT_SERVICES] (id 43) len 16
I/DTUN_HCID( 7704): dtun_dm_sig_rmt_services: success=0, service=00250000
E/DTUN_HCID( 7704): No device pointer found for peer! Ignore Error = true. Ignoring error...
I//system/bin/btld( 7690):              btapp_dm_GetRemoteServices()
W/BTLD    ( 7691): process_service_search_attr_rsp
I/BTL-IFS ( 7691): send_ctrl_msg: [BTL_IFS CTRL] send BTLIF_DTUN_SIGNAL_EVT (CTRL) 13 pbytes (hdl 10)
I/DTUN_CLNT( 7704): dtun-rx signal [DTUN_SIG_DM_RMT_SERVICE_CHANNEL] (id 42) len 15
I/DTUN_HCID( 7704): dtun_dm_sig_rmt_service_channel: success=0, service=00000000
E/DTUN_HCID( 7704): discovery unsuccessful!
I/BTL-IFS ( 7691): send_ctrl_msg: [BTL_IFS CTRL] send BTLIF_DTUN_SIGNAL_EVT (CTRL) 11 pbytes (hdl 10)
I/DTUN_CLNT( 7704): dtun-rx signal [DTUN_SIG_DM_LINK_DOWN] (id 47) len 13
I/DTUN_HCID( 7704):     *** sig_link_down :: device = [0xfbb0] handle = [256] addr = [00:07:80:88:F5:AD] reason = [16] ***
I/DTUN_HCID( 7704): 
I/BluetoothEventLoop.cpp( 1905): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/7704/hci0/dev_00_07_80_88_F5_AD
D/BluetoothEventLoop( 1905): Device property changed:00:07:80:88:F5:ADproperty:Disconnected
I/BluetoothService( 1905): ACL disconnected, mAclLinkCount = 0
D/BluetoothA2dpService( 1905): Received intent Intent { act=android.bluetooth.device.action.ACL_DISCONNECTED (has extras) }
D/BT HSHFP( 1961): Received intent Intent { act=android.bluetooth.device.action.ACL_DISCONNECTED (has extras) }
I/BT HSHFP( 1961): ACL disconnected
Ciaran
A: 

I found this exact problem happens when one of the devices has the Bluetooth turned off.

Jaime Botero
In my case, bluetooth is definitely turned on, on both devices. I am sure of this because I can also connect the heartrate monitor (Zephyr HxM) to my computer and read the data sent over serial.I always disconnect the device on my computer before trying over the Android phone, in case of interference etc.
Ciaran
A: 

Hello, Any news on this ? I tried the workaround proposed by Espen S. Nygaard but it still fails on a Samsung Spica.

Below an excerpt of the LogCat of where I think it fails.

05-13 18:16:40.359: DEBUG/BluetoothSocket.cpp(4375): initSocketFromFdNative
05-13 18:16:40.394: DEBUG/BluetoothSocket(4375): connect
05-13 18:16:40.394: DEBUG/BluetoothSocket.cpp(4375): connectNative
05-13 18:16:40.394: DEBUG/BluetoothSocket.cpp(4375): ...connect(33, RFCOMM) = -1 (errno 22)
05-13 18:16:40.414: WARN/System.err(4375): java.io.IOException: Invalid argument
05-13 18:16:40.449: WARN/System.err(4375):     at android.bluetooth.BluetoothSocket.connectNative(Native Method)
05-13 18:16:40.449: WARN/System.err(4375):     at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:187)
05-13 18:16:40.449: WARN/System.err(4375):     at com.payd.android.Payd.onActivityResult(Payd.java:203)
05-13 18:16:40.449: WARN/System.err(4375):     at android.app.Activity.dispatchActivityResult(Activity.java:3828)
enter code here
Edwin
A: 

https://android.git.kernel.org/?p=platform/system/wlan/broadcom.git;a=commit;h=e10efcc0c020caa486fa9d8cd05c986fd86f7c44

may solve this. The commit log is: "Add firmware for BCM4325"

If there was no firmware in the kernel to support this before, then it obviously would cause problems.

I guess I'll have to see if I can build android from source and install it on my phone :-(

Ciaran
False alarm. That commit relates to the wlan part of the chip. But the Broadcom contact has forwarded details of the bug in the bluetooth driver to the bluetooth team at Broadcom
Ciaran
A: 

Ok, solved it.

The solution is to update the firmware on the phone. I now have: PDA: I570EXXJE1 PHONE: i570EXXJD1 CSC: I570EOXEJE1

and bluetooth spp worked 'out of the box'.

Look at http://samsung-firmwares.com for both the latest firmware as well as programs to flash the phone (odin) and details/tutorials.

Ciaran