fix(bluetooth): 蓝牙音响不回连

关闭蓝牙适配器时,对已连接设备未做断开处理,致使后端未移除保存的连接配置

Log: 修复任务栏关闭蓝牙后再开启蓝牙,蓝牙音响不回连的问题
Bug: https://pms.uniontech.com/zentao/bug-view-34968.html
This commit is contained in:
zhaolong 2020-06-26 14:47:43 +08:00
parent 91aa6b62ab
commit 966bf0f465
3 changed files with 24 additions and 5 deletions

View File

@ -313,17 +313,27 @@ void AdapterItem::showDevices(bool powered)
QList<DeviceItem *> deviceItems;
deviceItems << m_sortConnected << m_sortUnConnect;
//在蓝牙关闭的时候会出现不在connected和Unconnect列表中的设备连接/关闭中的状态),关闭的时候使用总表参数
// 在蓝牙关闭的时候会出现不在connected和Unconnect列表中的设备连接/关闭中的状态),关闭的时候使用总表参数
qDebug() << m_sortConnected.size() << m_sortUnConnect.size() << m_deviceItems.size();
if (powered) {
for (DeviceItem *deviceItem : deviceItems) {
m_deviceLayout->addWidget(deviceItem);
deviceItem->setVisible(powered);
if (deviceItem) {
m_deviceLayout->addWidget(deviceItem);
deviceItem->setVisible(powered);
}
}
} else {
for (DeviceItem *deviceItem : m_deviceItems) {
m_deviceLayout->removeWidget(deviceItem);
deviceItem->setVisible(powered);
if (deviceItem) {
m_deviceLayout->removeWidget(deviceItem);
deviceItem->setVisible(powered);
}
}
for (DeviceItem *deviceItem : m_sortConnected) {
if (deviceItem) {
m_adaptersManager->disconnectDevice(deviceItem->device());
}
}
}

View File

@ -295,3 +295,11 @@ void AdaptersManager::adapterRefresh(const Adapter *adapter)
m_bluetoothInter->SetAdapterDiscoverable(dPath, true);
m_bluetoothInter->RequestDiscovery(dPath);
}
void AdaptersManager::disconnectDevice(Device *device)
{
if (device) {
QDBusObjectPath path(device->id());
m_bluetoothInter->DisconnectDevice(path);
}
}

View File

@ -43,6 +43,7 @@ public:
bool defaultAdapterInitPowerState();
int adaptersCount();
void adapterRefresh(const Adapter *adapter);
void disconnectDevice(Device *device);
signals:
void adapterIncreased(Adapter *adapter);