2011-01-24 10 views
8

Sto provando a comporre il cellulare tramite il programma C#. Qui sotto Mostra il mio programma. In questo, quando faccio clic sul mio pulsante di chiamata, comporre il numero (numero di destinazione) che ho dato nel mio programma. Ma dopo uno o due secondi è scomparso & non è collegato al numero di quella destinazione. Sotto Mostra il mio codice C#. Pls mi aiuta a risolvere questo problema. Grazie .......Chiamare il telefono cellulare tramite il programma C#

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
using System.IO.Ports; 

namespace WindowsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     {   
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      SerialPort sp = new SerialPort(); 
      sp.PortName = "COM10"; 
      sp.BaudRate = 9600; 
      sp.Parity = Parity.None; 
      sp.DataBits = 8; 
      sp.StopBits = StopBits.One; 
      sp.Handshake = Handshake.XOnXOff; 
      sp.DtrEnable = true; 
      sp.RtsEnable = true; 


      sp.Open(); 

      if (!sp.IsOpen) 
      { 
       MessageBox.Show("Serial port is not opened"); 
       return; 
      } 

      sp.WriteLine("AT" + Environment.NewLine); 
      sp.WriteLine("ATD=\"" + "Destination Number" + "\"" + Environment.NewLine); 

     } 
    } 
} 

Finalmente ho trovato la soluzione. Dovremmo aggiungere il punto e virgola alla fine del numero di destinazione. allora ha funzionato.

sp.WriteLine("ATD=\"" + "Destination Number;" + "\"" + Environment.NewLine); 
+0

Se il tuo telefono cellulare accetta i comandi del modem Hayes, penso che sia solo "ATDT2125551234', senza uguali o citazioni. – Rup

+0

la sua sony ericson cellulare. quando uso il tuo comando ATDT2125551234, il risultato è lo stesso. una o due secondi per la selezione e quindi scomparirà automaticamente. – Chamal

+2

Finalmente ho trovato la soluzione. Dovremmo aggiungere il; alla fine del numero di destinazione. allora ha funzionato. – Chamal

risposta

0

provare a spostare l'decleration del 'st' al di fuori del metodo, in questo modo:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
using System.IO.Ports; 

namespace WindowsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     private SerialPort sp; 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      sp = new SerialPort();   
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      if (sp.IsOpen) 
      { 
       sp.Close(); 
      } 

      sp.PortName = "COM10"; 
      sp.BaudRate = 9600; 
      sp.Parity = Parity.None; 
      sp.DataBits = 8; 
      sp.StopBits = StopBits.One; 
      sp.Handshake = Handshake.XOnXOff; 
      sp.DtrEnable = true; 
      sp.RtsEnable = true; 


      sp.Open(); 

      if (!sp.IsOpen) 
      { 
       MessageBox.Show("Serial port is not opened"); 
       return; 
      } 

      sp.WriteLine("AT" + Environment.NewLine); 
      sp.WriteLine("ATD=\"" + "Destination Number" + "\"" + Environment.NewLine); 

     } 
    } 
} 
1

Aumenta il tuo BaudRate al massimo e utilizzare questo AT Comando:

ATD = DestinationNumber; 

Questa volontà non funziona con ; come il sistema penserà che stai prendendo una chiamata dati e non una chiamata vocale.

0

Ecco il mio cavo di composizione di lavoro squilla il telefono Non sa che il modo di ottenere l'input vocale e fuori dal porto mettere sto utilizzando huwavi E173 dongle.Here è il mio cavo di lavoro C#

SerialPort port = new SerialPort(); 
port.Open(); 
string t = port.ReadExisting(); 
Thread.Sleep(100); 

string cmd = "ATD"; 
Thread.Sleep(100); 
string phoneNumber = "071********"; 
Thread.Sleep(100); 
port.WriteLine(cmd + phoneNumber + ";\r"); 

port.Close(); 
Problemi correlati