通过C#程序拨打手机
我正试图通过C#程序拨打手机。下面显示我的程序。在这种情况下,当我点击我的拨号按钮时,它会拨打我在程序中给出的号码(目的地号码)。但是一两秒钟后它就消失了&它没有连接到目的地号码。下面是我的C代码。请帮我解决这个问题。谢谢通过C#程序拨打手机,c#,C#,我正试图通过C#程序拨打手机。下面显示我的程序。在这种情况下,当我点击我的拨号按钮时,它会拨打我在程序中给出的号码(目的地号码)。但是一两秒钟后它就消失了&它没有连接到目的地号码。下面是我的C代码。请帮我解决这个问题。谢谢 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; u
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);
}
}
}
最后我找到了解决办法。我们应该在目的地号码的末尾加上分号。然后它成功了
sp.WriteLine("ATD=\"" + "Destination Number;" + "\"" + Environment.NewLine);
尝试将“sp”的偏差移到方法之外,如下所示:
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);
}
}
}
将
波特率
增加到最大值,并在处使用此命令:
ATD = DestinationNumber;
这不适用于out
因为系统会认为你在打数据电话而不是语音电话。这是我的工作拨号线,它会响电话
不知道如何从端口获取语音输入和输出我正在使用huwavi E173加密狗。这是我的工作线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();