Cuối cùng cũng có câu trả lời!
Trong C++ sử dụng libnm-glib để hoạt động trên proxy dbus. Từ sử dụng dòng lệnh ..
gdbus call --system --dest org.freedesktop.ModemManager --object-path /org/freedesktop/ModemManager/Modems/0 --method org.freedesktop.ModemManager.Modem.Gsm.Network.GetSignalQuality
cho u cường độ tín hiệu của modem GSM.
Nếu MM nói nó không thể nhận được chất lượng tín hiệu trong khi kết nối, đó là vì chỉ có một cổng AT cho tất cả lệnh và dữ liệu. Vì vậy, khi cổng AT được kết nối, không có lệnh AT nào có thể được gửi để thu thập chất lượng tín hiệu. Bạn sẽ cần phải có modem tốt hơn với nhiều cổng AT hơn hoặc chuyển đổi thành modem không phải AT, chẳng hạn như modem QMI hoặc MBIM. - Aleksander Morgado
Người ta có thể nghe org.freedesktop.ModemManager.Modem.Gsm.Network.GetSignalQuality
tín hiệu sử dụng
gdbus monitor --system --dest org.freedesktop.NetworkManager --object-path /org/freedesktop/NetworkManager/Modems/0
Q. Liệu các tín hiệu Proxy mọi có được một sự thay đổi trong cường độ tín hiệu asynchonously hoặc ModemManager các cuộc thăm dò modem theo định kỳ để có được chất lượng tín hiệu ?
A. Điều đó phụ thuộc vào modem đang được sử dụng; nếu modem hỗ trợ các chỉ dẫn thay đổi chất lượng không yêu cầu , chúng tôi sẽ sử dụng chúng; nếu không, MM sẽ thăm dò mỗi 30 để biết giá trị chất lượng tín hiệu. Các giá trị thuộc tính trong giao diện sẽ được cập nhật khi chúng tôi nhận được các giá trị mới (nhiều hơn hoặc ít hơn). - Aleksander Morgado
thiết bị của tôi là modem 3g. tôi có thể sử dụng 'quét iwlist ppp0' không? tôi sẽ thử. – neckTwi
Ứng dụng có hoạt động không? Tôi đã tìm kiếm một thư viện C++ để làm điều tương tự nhưng tôi đã không thể. Tôi đã tìm thấy trong Android mặc dù. Sau đó, cách này Bash + C++ đã giải quyết vấn đề của tôi một cách hiệu quả. Hy vọng nó cũng phù hợp với bạn. – Tlos
nhưng tôi không thử. Tôi đang theo [link] này (http://arachnoid.com/linux/linux_mobile_internet_access.html). nó cũng có thể giúp bạn. – neckTwi