QT识别U盘一自带的QDBus(hal)

转自http://www.qtcn.org/bbs/read-htm-tid-14535.html

在pro文件中应该加入
QT +=dbus
#include <QtDBus/QDBusConnection>
//以下为检测设备的插入
      QDBusConnection::systemBus().connect(    "org.freedesktop.Hal",
                        "/org/freedesktop/Hal/Manager",
                        "org.freedesktop.Hal.Manager",
                        "DeviceAdded",
                        this,
                        SLOT(slotDeviceAdded(QString )));
//以下为检查设备的拨出
    QDBusConnection::systemBus().connect(    "org.freedesktop.Hal",
                        "/org/freedesktop/Hal/Manager",
                        "org.freedesktop.Hal.Manager",
                        "DeviceRemoved",
                        this,
                        SLOT(slotDeviceRemoved(QString )));

在slotDeviceAdded(QString udi)函数中,要使用到

QDBusInterface device("org.freedesktop.Hal", udi, "org.freedesktop.Hal.Device" , QDBusConnection::systemBus());


通过HAL可以查询到设备为volume的设备,然后通过判断是否为/dev/sd*的设备,就可以判断出是否为U盘,然后调用mount就可以了。
这时记录下U盘的UDI,在检测到设备拨出时,再查询一下U盘的UDI是否还在,就知道U盘是否被拨出了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值