2014-02-17 54 views
0

我編寫了一個程序,當手機連接到筆記本電腦並獲得最後通話時間時自動撥號。我使用AT + CLCC命令獲取當前通話狀態。儘管它應該返回在一些字符串值作爲.......等我什麼也沒得到這樣的那麼遠,這裏是我的代碼..使用AT + CLCC命令獲取最後通話時長

 _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

你現在正在做什麼? –

+0

在控制檯我得到數據接收! OK AT + CLCC OK,但沒有任何字符串編號,因爲我想要的 – user3292311

回答

1

AT + CLCC命令不會提供有關上次呼叫的信息。它在期間提供信息(在撥號/振鈴/等待期間)。閱讀this的詳細信息

我認爲你可以讓手機自動輸出最後的通話詳細信息到終端,當通話斷開,但我不知道它是否提供通話時間。您可能必須使用您的應用程序手動監視記錄時間

我也看到了您的其他帖子。在使用編程實現任務自動化之前,我建議使用一個簡單的串口終端(putty或終端等)與手機通信並掌握概念。