我编写了一个程序,当手机连接到笔记本电脑时自动拨号并获得最后一个通话时间。我使用AT + CLCC命令获取当前通话状态。尽管它应该返回Some字符串值为.... ...等我到目前为止没有这样的东西......这是我的代码..
_serialPort.BaudRate = 9600;
_serialPort.Parity = Parity.None;
_serialPort.DataBits = 8;
_serialPort.StopBits = StopBits.One;
_serialPort.Handshake = Handshake.None;
// Set the read/write timeouts
_serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 500;
_serialPort.Open();
_serialPort.DtrEnable = true;
_serialPort.RtsEnable = true;
string phonenr = "";
// string mesaj;
if (!_serialPort.IsOpen)
{
_serialPort.Open();
}
_serialPort.WriteLine("AT\r");
{
Console.WriteLine("Enter the phone number:", phonenr);
phonenr = Console.ReadLine();
_serialPort.WriteLine("ATD" + phonenr + ";" + "\r");
Console.WriteLine("Ring...");
Thread.Sleep(10000);
_serialPort.WriteLine("AT+CLCC");
_serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
//As a seperate function....
private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
Console.WriteLine("Data Received:");
Console.Write(indata);
}
这段代码有什么问题????我如何得到格式的响应......等等?
答案 0 :(得分:3)
AT + CLCC命令不提供有关上次呼叫的信息。它在通话期间(在拨号/响铃/等待期间等)提供信息。请阅读this了解详细信息
我认为你可以让手机自动输出最后的通话详情给终端,当通话断开但我不确定它是否提供通话时间。您可能需要使用应用程序手动监视/记录时间
我看过其他帖子,你提出过类似的问题。我建议使用简单的串口终端(putty或终端等)与手机通信并掌握AT命令概念,然后再使用自己的代码控制手机。