diff --git a/services/miscdevice_service/src/miscdevice_service.cpp b/services/miscdevice_service/src/miscdevice_service.cpp index eb5b44d0a188b62fa7a6d1648ff07cbcc0acd4eb..325daa98439e9250b2035c228db1791520fad6dd 100644 --- a/services/miscdevice_service/src/miscdevice_service.cpp +++ b/services/miscdevice_service/src/miscdevice_service.cpp @@ -506,6 +506,12 @@ int32_t MiscdeviceService::StopVibratorByMode(int32_t vibratorId, const std::str return PERMISSION_DENIED; } if ((vibratorThread_ == nullptr) || (!vibratorThread_->IsRunning())) { +#if defined(OHOS_BUILD_ENABLE_VIBRATOR_CUSTOM) && defined(HDF_DRIVERS_INTERFACE_VIBRATOR) + if (vibratorHdiConnection_.IsVibratorRunning()) { + vibratorHdiConnection_.Stop(HDF_VIBRATE_MODE_PRESET); + vibratorHdiConnection_.Stop(HDF_VIBRATE_MODE_HDHAPTIC); + } +#endif // OHOS_BUILD_ENABLE_VIBRATE_CUSTOM && HDF_DRIVERS_INTERFACE_VIBRATOR MISC_HILOGD("No vibration, no need to stop"); return ERROR; } @@ -799,6 +805,9 @@ int32_t MiscdeviceService::PlayPattern(const VibratePattern &pattern, int32_t us return ERROR; } StartVibrateThread(info); + MISC_HILOGI("Start vibrator, currentTime:%{public}s, package:%{public}s, pid:%{public}d, usage:%{public}d," + "duration:%{public}d", curVibrateTime.c_str(), info.packageName.c_str(), info.pid, info.usage, + pattern.patternDuration); return vibratorHdiConnection_.PlayPattern(package.patterns.front()); } else if (g_capacity.isSupportPresetMapping) { info.mode = VIBRATE_CUSTOM_COMPOSITE_EFFECT; @@ -1030,8 +1039,8 @@ int32_t MiscdeviceService::PlayPrimitiveEffect(int32_t vibratorId, const std::st } StartVibrateThread(info); MISC_HILOGI("Start vibrator, currentTime:%{public}s, package:%{public}s, pid:%{public}d, usage:%{public}d," - "vibratorId:%{public}d, duration:%{public}d, effect:%{public}s", curVibrateTime.c_str(), - info.packageName.c_str(), info.pid, info.usage, vibratorId, info.duration, info.effect.c_str()); + "vibratorId:%{public}d, duration:%{public}d, effect:%{public}s, intensity:%{public}d", curVibrateTime.c_str(), + info.packageName.c_str(), info.pid, info.usage, vibratorId, info.duration, info.effect.c_str(), info.intensity); return NO_ERROR; }