蓝牙死机问题修改
authorhcj <1224667075@qq.com>
Wed, 7 Jan 2026 08:00:00 +0000 (16:00 +0800)
committerhcj <1224667075@qq.com>
Wed, 7 Jan 2026 08:00:00 +0000 (16:00 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/bluetooth/src/BluetoothEarPhoneView.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/bluetooth/src/BluetoothModel.cpp
code/sdk/middleware/services/media/foundation/audiomanager/frameworks/audioservice/src/streammanager/src/track_handle.c

index 5c85b6d..f4a1249 100644 (file)
@@ -224,7 +224,7 @@ void BluetoothEarPhoneView::BtEnable()
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable Bt is Discovering");\r
         return;\r
     } else {\r
-        results = gap_br_set_inquiry_paramters(DEVICE_MAJOR_CLASS_AUDIO_VIDEO, 0);\r
+        results = gap_br_set_inquiry_paramters(DEVICE_MAJOR_CLASS_AUDIO_VIDEO|SERVICE_AUDIO|SERVICE_TELEPHONY, 0);\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_br_set_inquiry_paramters results %d", results);\r
         results = gap_br_start_discovery();\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_br_start_discovery results %d", results);\r
index 758ef44..ce2e140 100644 (file)
@@ -1177,10 +1177,6 @@ static void A2dpSrcConnectstateChanged(bd_addr_t *bdAddr, int connState)
         uint32_t ret = avrcp_ct_connect(bdAddr);\r
         WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "avrcp_ct_connect ret = 0x%x", ret);\r
 \r
-        if(AI_IsVoiceServiceRunning()){\r
-            ln_ws_audio_deinit();\r
-        }\r
-        \r
         set_a2dp_is_connect(true);\r
         PhoneAudioManagerSetDeviceConnState(OUT_BLUETOOTH_A2DP, AUDIO_DEVICE_CONNECTED);\r
         GraphicService::GetInstance()->PostGraphicEvent(std::bind(ACLConnectionSuss, *bdAddr));\r
@@ -1191,14 +1187,8 @@ static void A2dpSrcConnectstateChanged(bd_addr_t *bdAddr, int connState)
     if (connState == PROFILE_STATE_DISCONNECTED) {\r
 \r
 \r
-\r
-        if(AI_IsVoiceServiceRunning()){\r
-            ln_ws_audio_deinit();\r
-            LOS_Msleep(100);//增加延时确保销毁彻底\r
-        }\r
-\r
         PhoneAudioManagerSetDeviceConnState(OUT_BLUETOOTH_A2DP, AUDIO_DEVICE_DISCONNECTED);\r
-\r
+      \r
         set_a2dp_is_connect(false);\r
 \r
  \r
index ce6e3b9..0373b57 100644 (file)
@@ -362,14 +362,19 @@ int32_t SetTrackOutputDevice(uintptr_t handle, int32_t deviceId, const AudioStre
     if (context->state == IDLE) {
         context->userAudioOutDevice = (uint32_t)deviceId;
     } else if (context->state == RUNNING) {
-        (void)context->callback(context->caller, AUDIO_EVENT_OUTPUT_DEVICE_CHANGED, NULL);\r
-        if (ChangeRouteInner(context, deviceId) != AUDIO_SUCCESS) {\r
-            goto ERR;\r
-        }\r
-    } else if (context->state == PAUSE) {\r
-        context->routeChangedDevice = (uint32_t)deviceId;\r
-    } else {\r
-        ALOGE("bad state[%d]", context->state);\r
+        if(context->callback==NULL)
+        {
+            ALOGE("callbak is NULL!");
+            goto ERR;
+        }
+        (void)context->callback(context->caller, AUDIO_EVENT_OUTPUT_DEVICE_CHANGED, NULL);
+        if (ChangeRouteInner(context, deviceId) != AUDIO_SUCCESS) {
+                        goto ERR;
+        }
+    } else if (context->state == PAUSE) {
+        context->routeChangedDevice = (uint32_t)deviceId;
+    } else {
+        ALOGE("bad state[%d]", context->state);
         goto ERR;
     }
     MediaMutexUnLock(context->deviceChangeMutex);