QT識別U盤一自帶的QDBus hal

2021-06-08 22:44:51 字數 855 閱讀 5909

**

在pro檔案中應該加入

qt +=dbus

#include

//以下為檢測裝置的插入

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)函式中,要使用到

qdbusinte***ce device("org.freedesktop.hal", udi, "org.freedesktop.hal.device" , qdbusconnection::systembus());

通過hal可以查詢到裝置為volume的裝置,然後通過判斷是否為/dev/sd*的裝置,就可以判斷出是否為u盤,然後呼叫mount就可以了。

這時記錄下u盤的udi,在檢測到裝置撥出時,再查詢一下u盤的udi是否還在,就知道u盤是否被撥出了。

ubuntu不能識別U盤的問題

ubuntu插入u盤後,系統沒任何反應,用 lsusb 也看不到任何裝置資訊。如果插入usb滑鼠倒是可以識別,正常使用。之前曾經在乙個台式電腦和一台compaq筆記本上安裝過ubuntu,都能正常識別該u盤,也試過 別的u盤,可以確認不是u盤的問題。在google上搜尋,好像都沒有人遇到這種問題。別...

C 識別連線到PC的U盤

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...

u盤的一些理解

u盤是由主控板 flash 外殼組成的,當主控板焊接上空白flash後插入電腦,因為沒有相應的資料,量產工具 電腦只能識別到主控板,而無法識別到flash,所以這時候電腦上顯示出u盤碟符,但是雙擊碟符卻顯示沒有插入u盤,就像是插入乙個空白的讀卡器。事實上這時候的u盤幾乎就是讀卡器。所以要讓電腦識別出...