首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

qt检测u盘安插,没有反应

2012-08-03 
qt检测u盘插入,没有反应在pro文件中应该加入QT +dbus1. #include QtDBus/QDBusConnection2. //以下为检

qt检测u盘插入,没有反应
在pro文件中应该加入
QT +=dbus



  1. #include <QtDBus/QDBusConnection>
  2. //以下为检测设备的插入
  3. QDBusConnection::systemBus().connect( "org.freedesktop.Hal",
  4. "/org/freedesktop/Hal/Manager",
  5. "org.freedesktop.Hal.Manager",
  6. "DeviceAdded",
  7. this,
  8. SLOT(slotDeviceAdded(QString )));
  9. //以下为检查设备的拨出
  10. QDBusConnection::systemBus().connect( "org.freedesktop.Hal",
  11. "/org/freedesktop/Hal/Manager",
  12. "org.freedesktop.Hal.Manager",
  13. "DeviceRemoved",
  14. this,
  15. SLOT(slotDeviceRemoved(QString ))); 

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

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


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


为什么按照以上设置,插入U盘时没有出触发slotDeviceAdded函数

[解决办法]
u盘驱动是否正确?或者换个u盘试试
[解决办法]
我也想知道原因,关注关注~~~~~~~~
[解决办法]
关注问题的解决方法。

热点排行