在c#编写的桌面应用程序上获取蜂窝加密狗(GSM)的信号强度

本文关键字:加密 GSM 信号 获取 桌面 应用 程序上 应用程序 | 更新日期: 2023-09-27 18:04:20

我正试图检索SignalStrength(即像酒吧背后的信息蜂窝电话),但在c# . net 4.0开发的桌面应用程序上,有一个GSM适配器连接到它。我已经设法使用RasDialer连接和断开与服务提供商的连接,但我找不到任何方法来获得SignalStrength。我尝试过MbnApi,但是它运行得很好,直到我收到连接的接口,在我使用其中一个接口之后,它崩溃了,出现一个COM异常,说"完成此操作所需的数据尚未可用"。下面这段代码在最后一行出现了这个异常,导致崩溃:

 MbnInterfaceManager mbnInfMgr = new MbnInterfaceManager();
 IMbnInterfaceManager infMgr = (IMbnInterfaceManager)mbnInfMgr;
 MbnConnectionManager mbnConnectionMgr = new MbnConnectionManager();
 IMbnConnectionManager ImbnConnectionMgr = (IMbnConnectionManager)mbnConnectionMgr;
 var mobileInterface = infMgr.GetInterfaces() as IMbnInterface[];
 IMbnSignal sig = (IMbnSignal)mobileInterface[0];
 uint signalStrength = sig.GetSignalStrength();

任何人都可以帮助,通过解释我做错了什么与MbnApi或指导我到另一个替代方案?

提前谢谢你,Yaron .

在c#编写的桌面应用程序上获取蜂窝加密狗(GSM)的信号强度

我看不到任何明显的错误,所以我将您的确切代码粘贴到。net 4.0测试项目中,参考了在Windows 8系统上构建的MbnApi并运行它,它运行得很好。我把集成调制解调器的信号强度弄出来了。

我假设在你的代码中,你通常会有try/catch块,null测试等。

您是否调查了当前有多少接口,以及您是否真的需要接口[0]或其他接口?还有一些很明显的事情,比如重新启动Windows等。

你问的是获得这个信息的其他可能性。当使用MBN API的信号强度时,你应该意识到这个因素。AT命令AT+CESQ给出更精确的值。本文档第8.69节对此进行了描述。在SO和互联网上有大量关于如何在c#中使用AT命令的信息-尝试at-command标记,或在SO上搜索[c#][AT -command]。