2011-07-01 120 views
2

我正在寫一個基於藍牙的小型串行控制程序,與微控制器板上的串行BT調制解調器對話。它主要基於Android的BluetoothChat示例程序。申請停止後Btld消耗資源?

當我第一次從Eclipse運行程序時,它安裝並運行得很好。但是,我發現有一些問題,當我修改程序並重新運行程序時,手機的運行速度會非常慢。這是在活動管理器中報告的,因爲btld佔用了94%的CPU資源。此時唯一的解決方案是取出電池並重新啓動手機。我試圖進入活動並阻止任何與英國電信有關的事情,但這並沒有幫助。

此外,我剛剛使用Android的標準BluetoothChat程序對它進行了測試,它也做了同樣的事情。這不是特定於我的附加代碼。

我也相信,經過一番實驗後,應用程序停止時會發生問題,當您強制停止應用程序或安裝新程序包時會發生此問題。它變得令人難以置信的煩人,因爲每次發生時,我都必須重新啓動或取出電池 - 這可能是一個5分鐘的過程。根本不適合調試。

我上的HTC 4G啓發(2.2)運行此,使用Eclipse(JAVA)等

我的問題是:

  1. 如何從消耗資源BTLD停下來?

  2. 更重要的是,是什麼導致了這種情況發生,並且在我的代碼中應該做些什麼改變?


欲瞭解更多信息,我有程序關閉,然後關閉BT期間從DDMS輸出。它看起來像DVM難以停止BT服務。我刪除了大量的調試消息,除非它們涉及到藍牙等

07-06 19:54:10.334: INFO/ActivityManager(1290): Force stopping package com.*******.*******.controller uid=10149 
07-06 19:54:10.341: ERROR/PhoneApp(1446): -- PackageChangeBroadcastReceiver action = android.intent.action.PACKAGE_RESTARTED 
07-06 19:54:10.441: DEBUG/BluetoothService(1290): Tracked app 3520 died 
07-06 19:54:10.441: INFO/BTL-IFS-WRAPPER(1592): rx_data: socket disconnected. 
07-06 19:54:10.441: INFO/BTL-IFS(1592): detach_client: ######## Detached client subsystem (BTS) fd -1 ######## 
07-06 19:54:10.441: INFO/BTL-IFS(1592): detach_client: @*@*@*@*@*@*@*@*@*@*@*@*@* (BTS) - close(-1) 
07-06 19:54:10.441: INFO/BTL-IFS(1592): btl_if_notify_local_event: Notify local event BTLIF_SUBSYSTEM_DETACHED 
07-06 19:54:10.441: DEBUG/(1592): btlif_bts_api_ctrl_cb: btlif_bts_api_ctrl_cb : id BTLIF_SUBSYSTEM_DETACHED (4113) on hdl 25 
07-06 19:54:10.441: INFO/(1592): btlif_rfc_ctrl_chan_detached: client detached ctrl handle -1 
07-06 19:54:48.621: WARN/SharedBufferStack(1794): waitForCondition(LockCondition) timed out (identity=68, status=0). CPU may be pegged. trying again. 
07-06 19:54:48.621: WARN/SharedBufferStack(1794): mutex_flags = 4 
07-06 19:54:48.621: WARN/SharedBufferStack(1794): [ head= 0, available= 0, queued= 1 ]reallocMask=00000000, inUse= 0, identity=68, status=0 
07-06 19:54:49.621: WARN/SharedBufferStack(1794): waitForCondition(LockCondition) timed out (identity=68, status=0). CPU may be pegged. trying again. 
07-06 19:54:49.621: WARN/SharedBufferStack(1794): mutex_flags = 4 
07-06 19:54:49.621: WARN/SharedBufferStack(1794): [ head= 0, available= 0, queued= 1 ]reallocMask=00000000, inUse= 0, identity=68, status=0 
07-06 19:54:53.611: WARN/ResourceType(1794): Failure getting entry for 0x7f090014 (t=8 e=20) in package 0: 0xffffffb5 
07-06 19:54:59.621: WARN/SharedBufferStack(1794): waitForCondition(LockCondition) timed out (identity=68, status=0). CPU may be pegged. trying again. 
07-06 19:54:59.621: WARN/SharedBufferStack(1794): mutex_flags = 4 
07-06 19:54:59.621: WARN/SharedBufferStack(1794): [ head= 1, available= 0, queued= 1 ]reallocMask=00000000, inUse= 1, identity=68, status=0 
07-06 19:55:00.621: WARN/SharedBufferStack(1794): waitForCondition(LockCondition) timed out (identity=68, status=0). CPU may be pegged. trying again. 
07-06 19:55:00.621: WARN/SharedBufferStack(1794): mutex_flags = 4 
07-06 19:55:00.621: WARN/SharedBufferStack(1794): [ head= 1, available= 0, queued= 1 ]reallocMask=00000000, inUse= 1, identity=68, status=0 
07-06 19:55:14.641: WARN/SharedBufferStack(1794): waitForCondition(LockCondition) timed out (identity=68, status=0). CPU may be pegged. trying again. 
07-06 19:55:14.641: WARN/SharedBufferStack(1794): mutex_flags = 4 
07-06 19:55:14.641: WARN/SharedBufferStack(1794): [ head= 1, available= 0, queued= 1 ]reallocMask=00000000, inUse= 1, identity=68, status=0 
07-06 19:55:26.621: WARN/SharedBufferStack(1290): waitForCondition(ReallocateCondition) timed out (identity=71, status=0). CPU may be pegged. trying again. 
07-06 19:55:26.621: WARN/SharedBufferStack(1290): mutex_flags = a0 
07-06 19:55:26.621: WARN/SharedBufferStack(1290): [ head= 0, available= 0, queued= 1 ]reallocMask=00000002, inUse= 0, identity=71, status=0 
07-06 19:55:27.621: WARN/SharedBufferStack(1290): waitForCondition(ReallocateCondition) timed out (identity=71, status=0). CPU may be pegged. trying again. 
07-06 19:55:27.621: WARN/SharedBufferStack(1290): mutex_flags = a0 
07-06 19:55:27.621: WARN/SharedBufferStack(1290): [ head= 0, available= 0, queued= 1 ]reallocMask=00000002, inUse= 0, identity=71, status=0 
07-06 19:55:28.621: WARN/SharedBufferStack(1290): waitForCondition(ReallocateCondition) timed out (identity=71, status=0). CPU may be pegged. trying again. 
07-06 19:55:28.621: WARN/SharedBufferStack(1290): mutex_flags = a0 
07-06 19:55:28.621: WARN/SharedBufferStack(1290): [ head= 0, available= 0, queued= 1 ]reallocMask=00000002, inUse= 0, identity=71, status=0 
07-06 19:55:44.631: DEBUG/BluetoothService(1290): Already release wake lock for discoverable mode 
07-06 19:55:44.631: DEBUG/BluetoothService(1290): Bluetooth state 12 -> 13 
07-06 19:55:44.641: DEBUG/BluetoothHandsfree(1446): audioOff(): mPendingSco: false, mScoSocket: , mA2dpState: 0, mA2dpSuspended: false 
07-06 19:55:44.641: INFO/BTL_IFC(1446): send_ctrl_msg: [BTL_IFC CTRL] send BTLIF_DISCONNECT_REQ (SCO) 0 pbytes (hdl 52) 
07-06 19:55:44.641: INFO/BluetoothA2dpService(1290): A2DP profile has been disconnected 
07-06 19:55:44.641: INFO/BTL_IFC(1446): send_ctrl_msg: [BTL_IFC CTRL] send BTLIF_DISCONNECT_REQ (SCO) 0 pbytes (hdl 52) 
07-06 19:55:45.611: INFO/BLZ_WRAPPER(1446): btl_if_close: btl_if_close (50) 
07-06 19:55:45.611: DEBUG/BLZ_WRAPPER(1446): btl_if_close: [btl_if_close] : (50:50), disc_pending 0, asnc 0, selct 0, flags 0 
07-06 19:55:45.611: INFO/BTL_IFC(1446): send_ctrl_msg: [BTL_IFC CTRL] send BTLIF_DISCONNECT_REQ (AG) 2 pbytes (hdl 49) 
07-06 19:55:45.611: DEBUG/BTL_IFC_WRP(1446): wrp_close_s_only: wrp_close_s_only [50] (50:50) [brcm.bt.dtun] 
07-06 19:55:45.611: DEBUG/BTL_IFC_WRP(1446): wrp_close_s_only: data socket closed 
07-06 19:55:45.611: DEBUG/BTL_IFC_WRP(1446): wsactive_del: delete wsock 50 from active list [ad3b32b8] 
07-06 19:55:45.611: DEBUG/BTL_IFC_WRP(1446): wrp_close_s_only: listen socket closed 
07-06 19:55:45.611: DEBUG/BTL_IFC_WRP(1446): wsactive_del: delete wsock 50 from active list [ad3b32b8] 
07-06 19:55:45.611: DEBUG/BTL_IFC_WRP(1446): wrp_close_s_only: wsock fully closed, return to pool 
07-06 19:55:45.611: DEBUG/BLZ_WRAPPER(1446): ws_async_del: [ws_async_del] : (-1:-1), disc_pending 0, asnc 0, selct 0, flags 0 
07-06 19:55:45.611: INFO/BLZ_WRAPPER(1446): btl_if_close: btl_if_close (51) 
07-06 19:55:45.611: DEBUG/BLZ_WRAPPER(1446): btl_if_close: [btl_if_close] : (51:51), disc_pending 0, asnc 0, selct 0, flags 0 
07-06 19:55:45.611: INFO/BTL_IFC(1446): send_ctrl_msg: [BTL_IFC CTRL] send BTLIF_DISCONNECT_REQ (AG) 2 pbytes (hdl 49) 
07-06 19:55:45.611: DEBUG/BTL_IFC_WRP(1446): wrp_close_s_only: wrp_close_s_only [51] (51:51) [brcm.bt.dtun] 
07-06 19:55:45.611: DEBUG/BTL_IFC_WRP(1446): wrp_close_s_only: data socket closed 
07-06 19:55:45.611: DEBUG/BTL_IFC_WRP(1446): wsactive_del: delete wsock 51 from active list [ad3b3b18] 
07-06 19:55:45.611: DEBUG/BTL_IFC_WRP(1446): wrp_close_s_only: listen socket closed 
07-06 19:55:45.611: DEBUG/BTL_IFC_WRP(1446): wsactive_del: delete wsock 51 from active list [ad3b3b18] 
07-06 19:55:45.611: DEBUG/WifiService(1290): setWifiEnabled(mAirplaneModeOverwridden=)false 
07-06 19:55:45.611: DEBUG/BTL_IFC_WRP(1446): wrp_close_s_only: wsock fully closed, return to pool 
07-06 19:55:45.611: DEBUG/BLZ_WRAPPER(1446): ws_async_del: [ws_async_del] : (-1:-1), disc_pending 0, asnc 0, selct 0, flags 0 
07-06 19:55:45.611: INFO/BluetoothHeadsetService(1446): Headset profile has been disconnected 
07-06 19:55:45.621: VERBOSE/BluetoothDataGatewayService(1290): #### DataGateway Service Received message #### 
07-06 19:55:45.621: INFO/BrcmBtServiceLoader(1290): ***Received Bluetooth UNKNOWN_STATE_CHANGE Event**** : 13 
07-06 19:55:45.641: VERBOSE/BtEventReceiver(2047): #### Received Bluetooth State Change Action #### 
07-06 19:55:45.641: INFO/BluetoothService(1290): Got ACTION_PROFILE_DISCONNECTED, profile = 2 
07-06 19:55:46.641: INFO/BluetoothService(1290): Got ACTION_PROFILE_DISCONNECTED, profile = 1 
07-06 19:55:52.611: INFO/BluetoothService(1290): Got ACTION_PROFILE_DISCONNECTED, profile = 3 
07-06 19:55:53.621: INFO/bluedroid(1290): bt_disable 
07-06 19:55:53.621: INFO/bluedroid(1290): bt_disable: BT_LOCK_MUTEX() 
07-06 19:55:53.621: INFO/bluedroid(1290): $#$#$#$# BTON_FMOFF_handling 
07-06 19:55:53.621: INFO/bluedroid(1290): $#$#$#$# BTON_FMOFF_handling : receiving BT_OFF 
07-06 19:55:53.621: INFO/bluedroid(1290): $#$#$#$# Stopping bluetoothd, try 10 times before giving-up ... 
07-06 19:55:53.621: INFO/DTUN_HCID4(1651): ## bluetoothd terminate (15) ## 
07-06 19:55:53.621: INFO/DTUN_HCID4(1651): main loop exiting 
07-06 19:55:53.621: INFO/DTUN_HCID4(1651): hcid main loop exiting 
07-06 19:55:53.621: INFO/DTUN_CLNT(1651): dtun_client_stop : iface [DTUN_INTERFACE] stopping... 
07-06 19:55:55.631: DEBUG/ADAPTER(1651): Removing adapter /org/bluez/1651/hci0 
07-06 19:55:55.631: DEBUG/DEVICE(1651): Removing device /org/bluez/1651/hci0/dev_00_06_66_04_11_88 
07-06 19:55:55.631: DEBUG/DEVICE(1651): btd_device_unref(0xf518): ref=0 
07-06 19:55:55.631: DEBUG/DEVICE(1651): device_free(0xf518) 
07-06 19:55:55.631: DEBUG/DEVICE(1651): Removing device /org/bluez/1651/hci0/dev_00_1F_E2_DE_87_DD 
07-06 19:55:55.631: DEBUG/DEVICE(1651): btd_device_unref(0xf7e8): ref=1 
07-06 19:55:55.631: DEBUG/ADAPTER(1651): btd_adapter_unref(0xf180): ref=0 
07-06 19:55:55.631: DEBUG/ADAPTER(1651): adapter_free(0xf180) 
07-06 19:55:55.631: DEBUG/dhcp_util(1290): dhcp_stop fail. cnt: 1 
07-06 19:55:55.631: INFO/DTUN_HCID4(1651): btl_cfg_set_bluetoothd_pid : service.brcm.bt.bluetoothd_pid = 0 
07-06 19:55:55.641: INFO/DTUN_HCID4(1651): btl_cfg_set_bluetoothd_pid success : service.brcm.bt.bluetoothd_pid = 0, ret = 0 
07-06 19:55:56.611: INFO/bluedroid(1290): $#$#$#$#$# Stopping btld, try 10 times before giving-up ... 
07-06 19:55:56.631: DEBUG/WifiStateTracker(1290): Reset connections and stopping DHCP 
07-06 19:55:56.711: VERBOSE/BTL_CFG(1592): btl_cfg_get_soft_onoff_enabled : service.brcm.bt.soft_onoff = 0 
07-06 19:55:56.711: VERBOSE/BTL_CFG(1592): btl_cfg_get_soft_onoff_enabled : service.brcm.bt.soft_onoff = 0 
07-06 19:55:56.711: INFO/BTL-IFS(1592): BTL_IF_UnregisterSubSystem: Unregistered subsystem [FM] 
07-06 19:55:57.651: VERBOSE/BluetoothEventRedirector(1794): Received android.bluetooth.adapter.action.STATE_CHANGED 
07-06 19:55:57.651: INFO/BluetoothEventRedirector(1794): EXTRA_STATE = 13 
07-06 19:55:57.651: DEBUG/LocalBluetoothManager(1794): sky-setBluetoothStateInt :13 
07-06 19:55:57.661: INFO/BTL-IFS(1592): BTL_IF_ServerShutdown: BTL-IF Server shutting down... 
07-06 19:55:59.611: DEBUG/LocalBluetoothManager(1794): sky-getBluetoothState :13 
07-06 19:56:00.711: WARN/BTLD(1592): BTA got unregistered event id 6 
07-06 19:56:01.611: DEBUG/ASOCKWRP(1939): asocket_abort [51,52,53] 
07-06 19:56:01.611: INFO/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: s 51, how 2 
07-06 19:56:01.611: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: fd (51:51), bta 0, rc 1, wflags 0x20, cflags 0x2, port 9049 
07-06 19:56:01.621: INFO/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: shutdown socket 
07-06 19:56:01.621: INFO/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: wake up any waiting server threads 
07-06 19:56:01.621: DEBUG/BLZ20_WRAPPER(1939): btlif_signal_event: fd (51:51), bta 0, rc 1, wflags 0x20, cflags 0x2, port 9049 
07-06 19:56:01.621: DEBUG/BLZ20_WRAPPER(1939): btlif_signal_event: event BTLIF_BTS_EVT_ABORT matched 
07-06 19:56:01.621: DEBUG/BLZ20_WRAPPER(1939): btlif_wait_response: unblocked fd (51:51), bta 0, rc 1, wflags 0x20, cflags 0x2, port 9049 
07-06 19:56:01.621: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_poll: set errno 125 (Operation Canceled) l.2029 
07-06 19:56:01.621: DEBUG/ASOCKWRP(1939): asocket_accept:ended poll socket fd:51, ret:-1 
07-06 19:56:01.621: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_write: wrote 1 bytes out of 1 on fd 53 
07-06 19:56:01.621: DEBUG/ASOCKWRP(1939): asocket_destroy 
07-06 19:56:01.621: DEBUG/ASOCKWRP(1939): asocket_abort [51,52,53] 
07-06 19:56:01.621: INFO/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: s 51, how 2 
07-06 19:56:01.621: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: fd (51:51), bta 0, rc 1, wflags 0x20, cflags 0x2, port 9049 
07-06 19:56:01.621: INFO/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: shutdown socket 
07-06 19:56:01.621: INFO/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: wake up any waiting server threads 
07-06 19:56:01.621: DEBUG/BLZ20_WRAPPER(1939): btlif_signal_event: fd (51:51), bta 0, rc 1, wflags 0x20, cflags 0x2, port 9049 
07-06 19:56:01.621: DEBUG/BLZ20_WRAPPER(1939): btlif_signal_event: event BTLIF_BTS_EVT_ABORT matched 
07-06 19:56:01.621: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_write: wrote 1 bytes out of 1 on fd 53 
07-06 19:56:01.621: INFO/BLZ20_WRAPPER(1939): blz20_wrp_close: s 53 
07-06 19:56:01.621: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_close: std close (53) 
07-06 19:56:01.621: INFO/BLZ20_WRAPPER(1939): blz20_wrp_close: s 52 
07-06 19:56:01.621: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_close: std close (52) 
07-06 19:56:01.621: INFO/BLZ20_WRAPPER(1939): blz20_wrp_close: s 51 
07-06 19:56:01.631: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_close: fd (51:51), bta 0, rc 1, wflags 0x20, cflags 0x2, port 9049 
07-06 19:56:01.631: INFO/BLZ20_WRAPPER(1939): __close_prot_rfcomm: fd 51 
07-06 19:56:01.631: INFO/BTL_IFC(1939): send_ctrl_msg: [BTL_IFC CTRL] send BTLIF_BTS_RFC_LISTEN_CANCEL (BTS) 8 pbytes (hdl 50) 
07-06 19:56:01.631: DEBUG/BTL_IFC_WRP(1939): wrp_close_s_only: wrp_close_s_only [51] (51:51) [brcm.bt.dtun] 
07-06 19:56:01.631: DEBUG/BTL_IFC_WRP(1939): wrp_close_s_only: data socket closed 
07-06 19:56:01.631: DEBUG/BTL_IFC_WRP(1939): wsactive_del: delete wsock 51 from active list [ad3f73ac] 
07-06 19:56:01.631: DEBUG/BTL_IFC_WRP(1939): wrp_close_s_only: listen socket closed 
07-06 19:56:01.631: DEBUG/BTL_IFC_WRP(1939): wsactive_del: delete wsock 51 from active list [ad3f73ac] 
07-06 19:56:01.631: DEBUG/BTL_IFC_WRP(1939): wrp_close_s_only: wsock fully closed, return to pool 
07-06 19:56:01.631: DEBUG/BLZ20_WRAPPER(1939): btsk_dump_list: fd (54:54), bta 1, rc 7, wflags 0x20, cflags 0x2, port 9050 
07-06 19:56:01.631: DEBUG/BLZ20_WRAPPER(1939): btsk_free: success 
07-06 19:56:01.761: INFO/BTL-BTAPP_AV(1592): AV disabled 
07-06 19:56:02.661: WARN/BTLD(1592): BTA got unregistered event id 8 
07-06 19:56:02.661: WARN/BTLD(1592): BTA got unregistered event id 12 
07-06 19:56:03.641: DEBUG/ASOCKWRP(1939): asocket_abort [54,55,56] 
07-06 19:56:03.651: INFO/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: s 54, how 2 
07-06 19:56:03.651: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: fd (54:54), bta 1, rc 7, wflags 0x20, cflags 0x2, port 9050 
07-06 19:56:03.651: INFO/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: shutdown socket 
07-06 19:56:03.651: INFO/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: wake up any waiting server threads 
07-06 19:56:03.651: DEBUG/BLZ20_WRAPPER(1939): btlif_signal_event: fd (54:54), bta 1, rc 7, wflags 0x20, cflags 0x2, port 9050 
07-06 19:56:03.651: DEBUG/BLZ20_WRAPPER(1939): btlif_signal_event: event BTLIF_BTS_EVT_ABORT matched 
07-06 19:56:03.651: DEBUG/BLZ20_WRAPPER(1939): btlif_wait_response: unblocked fd (54:54), bta 1, rc 7, wflags 0x20, cflags 0x2, port 9050 
07-06 19:56:03.651: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_poll: set errno 125 (Operation Canceled) l.2029 
07-06 19:56:03.651: DEBUG/ASOCKWRP(1939): asocket_accept:ended poll socket fd:54, ret:-1 
07-06 19:56:03.651: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_write: wrote 1 bytes out of 1 on fd 56 
07-06 19:56:03.661: WARN/BTLD(1592): L2CAP - PSM: 0x0019 not found for deregistration 
07-06 19:56:03.661: WARN/BTLD(1592): L2CAP - PSM: 0x0017 not found for deregistration 
07-06 19:56:04.611: DEBUG/ASOCKWRP(1939): asocket_destroy 
07-06 19:56:04.611: DEBUG/ASOCKWRP(1939): asocket_abort [54,55,56] 
07-06 19:56:04.611: INFO/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: s 54, how 2 
07-06 19:56:04.611: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: fd (54:54), bta 1, rc 7, wflags 0x20, cflags 0x2, port 9050 
07-06 19:56:04.611: INFO/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: shutdown socket 
07-06 19:56:04.611: INFO/BLZ20_WRAPPER(1939): blz20_wrp_shutdown: wake up any waiting server threads 
07-06 19:56:04.611: DEBUG/BLZ20_WRAPPER(1939): btlif_signal_event: fd (54:54), bta 1, rc 7, wflags 0x20, cflags 0x2, port 9050 
07-06 19:56:04.611: DEBUG/BLZ20_WRAPPER(1939): btlif_signal_event: event BTLIF_BTS_EVT_ABORT matched 
07-06 19:56:04.611: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_write: wrote 1 bytes out of 1 on fd 56 
07-06 19:56:04.611: INFO/BLZ20_WRAPPER(1939): blz20_wrp_close: s 56 
07-06 19:56:04.611: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_close: std close (56) 
07-06 19:56:04.611: INFO/BLZ20_WRAPPER(1939): blz20_wrp_close: s 55 
07-06 19:56:04.611: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_close: std close (55) 
07-06 19:56:04.611: INFO/BLZ20_WRAPPER(1939): blz20_wrp_close: s 54 
07-06 19:56:04.611: DEBUG/BLZ20_WRAPPER(1939): blz20_wrp_close: fd (54:54), bta 1, rc 7, wflags 0x20, cflags 0x2, port 9050 
07-06 19:56:04.611: INFO/BLZ20_WRAPPER(1939): __close_prot_rfcomm: fd 54 
07-06 19:56:04.611: INFO/BTL_IFC(1939): send_ctrl_msg: [BTL_IFC CTRL] send BTLIF_BTS_RFC_LISTEN_CANCEL (BTS) 8 pbytes (hdl 50) 
07-06 19:56:04.611: DEBUG/BTL_IFC_WRP(1939): wrp_close_s_only: wrp_close_s_only [54] (54:54) [brcm.bt.dtun] 
07-06 19:56:04.611: DEBUG/BTL_IFC_WRP(1939): wrp_close_s_only: data socket closed 
07-06 19:56:04.611: DEBUG/BTL_IFC_WRP(1939): wsactive_del: delete wsock 54 from active list [ad3f7c0c] 
07-06 19:56:04.611: DEBUG/BTL_IFC_WRP(1939): wrp_close_s_only: listen socket closed 
07-06 19:56:04.611: DEBUG/BTL_IFC_WRP(1939): wsactive_del: delete wsock 54 from active list [ad3f7c0c] 
07-06 19:56:04.611: DEBUG/BTL_IFC_WRP(1939): wrp_close_s_only: wsock fully closed, return to pool 
07-06 19:56:04.611: DEBUG/BLZ20_WRAPPER(1939): btsk_free: success 
07-06 19:56:04.661: WARN/BTLD(1592): L2CAP - PSM: 0x0019 not found for deregistration 
07-06 19:56:04.661: WARN/BTLD(1592): L2CAP - PSM: 0x0017 not found for deregistration 
07-06 19:56:04.661: WARN/BTLD(1592): L2CAP - PSM: 0x0019 not found for deregistration 
07-06 19:56:04.661: WARN/BTLD(1592): L2CAP - PSM: 0x0017 not found for deregistration 
07-06 19:56:16.611: ERROR/bluedroid(1290): btld stop timed out 
07-06 19:56:16.611: INFO/bluedroid(1290): $#$#$#$# New state is BTOFF_FMOFF_handling 
07-06 19:56:16.611: INFO/bluedroid(1290): bt_disable: BT_UNLOCK_MUTEX() 
07-06 19:56:23.641: DEBUG/LocalBluetoothManager(1794): sky-getBluetoothState :13 
07-06 19:57:23.611: DEBUG/BluetoothService(1290): Bluetooth state 13 -> 10 
07-06 19:57:23.631: VERBOSE/BluetoothEventRedirector(1794): Received android.bluetooth.adapter.action.STATE_CHANGED 
07-06 19:57:24.611: INFO/BluetoothEventRedirector(1794): EXTRA_STATE = 10 
07-06 19:57:24.611: DEBUG/LocalBluetoothManager(1794): sky-setBluetoothStateInt :10 
07-06 19:57:24.621: DEBUG/VoldCmdListener(1203): asec list 
07-06 19:57:28.631: VERBOSE/BluetoothDataGatewayService(1290): #### DataGateway Service Received message #### 
07-06 19:57:28.631: INFO/BrcmBtServiceLoader(1290): ***Received Bluetooth OFF Event**** 
07-06 19:57:28.631: DEBUG/BluetoothServiceManager(1290): onBluetoothDisabled() 
07-06 19:57:28.631: DEBUG/BluetoothServiceManager(1290): ***stopService(): Stopping service: bluetooth_ftp*** 
07-06 19:57:28.631: DEBUG/com_broadcom_bt_service_ftp_FTPService.cpp(1290): disableFtpServerNative 
07-06 19:57:28.631: INFO/BTL_IFC(1290): send_ctrl_msg: [BTL_IFC CTRL] send BTLIF_FTPS_DISABLE (FTPS) 0 pbytes (hdl 0) 
07-06 19:57:28.631: ERROR/BTL_IFC(1290): ##### ERROR : tx_data: write failed (-1)##### 
07-06 19:57:28.631: ERROR/BTL_IFC(1290): ##### ERROR : BTL_IFC_CtrlSend: [BTL_IFC CTRL] send failed##### 
07-06 19:57:28.631: DEBUG/com_broadcom_bt_service_ftp_FTPService.cpp(1290): Unregister Sub system SUB_FTPS 
07-06 19:57:28.631: DEBUG/BluetoothServiceManager(1290): ***stopService(): Stopping service: bluetooth_pbs*** 
07-06 19:57:28.631: DEBUG/com_broadcom_bt_service_pbap_PBAPService.cpp(1290): disablePbapServerNative 
07-06 19:57:28.631: INFO/BTL_IFC(1290): send_ctrl_msg: [BTL_IFC CTRL] send BTLIF_PBS_DISABLE (PBS) 0 pbytes (hdl 147) 
07-06 19:57:28.631: DEBUG/com_broadcom_bt_service_pbap_PBAPService.cpp(1290): Send Disable Command Successfully 
07-06 19:57:28.631: DEBUG/com_broadcom_bt_service_pbap_PBAPService.cpp(1290): Unregister Sub system SUB_PBS 
07-06 19:57:28.631: INFO/BluetoothPBAPService(1290): onPbapDisabled 
07-06 19:57:35.641: DEBUG/BluetoothServiceManager(1290): ServiceStateChanged: bluetooth_pbs, 1 
07-06 19:57:35.641: DEBUG/BluetoothServiceManager(1290): Finishing service bluetooth_pbs 

回答

0

一個解決方案,我發現工作(對於三星Galaxy迷你) - 這是相當不友好的用戶,而不是好「的設計「(但broadcom固件錯誤不是好的」設計「反正) - 但它比讓用戶的手機凍結好 - 是關閉藍牙後我們完成:

在我的onDestroy()和onBackPressed () - 我打電話給我的清理()函數有這樣的事情:

if(mBluetoothAdapter != null) 
{   
mBluetoothAdapter.disable();    
}  
mBluetoothAdapter = null; 

注意:這個手機在bt使用後「凍結」(在使用broadcom bt堆棧的三星Galaxy上)同樣發生在官方android sdk的bluetooth_chat示例應用程序中 - 同樣的問題 - 所以它顯然不是一個編程「設計」問題。