【问题标题】:C# IMEI detection of any device connected via USBC# IMEI 检测通过 USB 连接的任何设备
【发布时间】:2015-05-14 05:26:55
【问题描述】:

我正在使用 C# 桌面应用程序来检测通过 USB 连接的设备的 IMEI。安装驱动程序并运行 AT 命令后,我让它与三星设备一起使用。是否有适用于所有设备的通用方法。

【问题讨论】:

    标签: c# windows mobile usb desktop-application


    【解决方案1】:

    任何支持 at 命令的设备都可以使用 C# serial port class 进行访问。一旦我们通过串行端口获得设备,我们就可以发送命令并响应这些命令。这就是我们如何发送 IMEI 号码的 AT 命令,并通过统一接口为所有类型的支持 AT 命令并可以通过 COM 端口访问的设备获取号码作为 at 命令的响应。

    我找到了关注example on codeproject获取IMEI号并稍作修改。

    private string GetIMEINumber(string PortName) //Serial
    {
        string key = "";
        SerialPort serialPort = new SerialPort();
        serialPort.PortName = PortName;
        serialPort.BaudRate = 9600;
        try
        {
            if (!(serialPort.IsOpen))
                serialPort.Open();
            serialPort.Write("AT\r\n");
            Thread.Sleep(3000);
            key = serialPort.ReadExisting();
            serialPort.Write("AT+CGSN\r\n");
            Thread.Sleep(3000);
            key = serialPort.ReadExisting();
            serialPort.Close();
            string Serial = "";
            for (int i = 0; i < key.Length; i++)
                if (char.IsDigit(key[i]))
                    Serial += key[i];
            return Serial;
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error in opening/writing to serial port :: " + ex.Message, "Error!");
            return "";
        } 
    } 
    

    【讨论】:

    • 我的解决方案使用 USB 类和 AT 命令运行。但我认为只有当 Windows 将移动驱动程序识别为调制解调器时,AT 命令才有效。如果没有,则需要安装驱动程序。有没有不需要安装驱动的通用解决方案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 2011-08-15
    相关资源
    最近更新 更多