C#学习教程:蓝牙拨号32feet.net和c#我一直在尝试使用32feet.net蓝牙api来执行此操作。我真的没有用蓝牙做任何事情(自从通过蓝牙串行发出命令的日子以来),但我已经配对了有问题的设备并且它支持pc的免提服务。我有以下代码尝试连接并发送拨号命令。StringdeviceAddr="11:11:11:11:11:11";BluetoothAddress地址=蓝牙地址。解析(设备地址);BluetoothEndPointrep=newBluetoothEndPoint(addr,BluetoothService.Handsfree);BluetoothClientcli=newBluetoothClient();cli。连接(代表);流peerStream=cli.GetStream();StringdialCmd="ATD0000000000rn";字节[]dcB=System.Text.Encoding.ASCII.GetBytes(dialCmd);peerStream.Write(dcB,0,dcB.Length);//开始编辑-----------------------------------------------------------Byte[]sResponse=newByte[100];peerStream.Read(sResponse,0,99);TextBox1.Text=System.Text.Encoding.ASCII.GetString(sResponse);//结束编辑----------------------------------------------------------peerStream.Close();cli.关闭();MessageBox.Show("完成");由于这段代码好像跑通了,所以适时连接到相关位置,如果设备地址错误连接不上就crash了。显然AT命令不是发送它的正确选择。谁能告诉我可能需要通过免提配置文件将什么发送到蓝牙设备才能拨号?开始编辑----------------------我决定从流中读取并查看在发送AT命令后是否有任何类型的响应。因为我只是在测试我是否可以让它工作,所以我只是将响应转储到文本框中。我从流中读取的响应是:ERRORTheredoesn'tseemtobeanerrorcodeoranything.编辑结束————————————————编辑中————————————————————————发送命令:AT+CMERrn结果:OK然后发送指令:AT+CIND=?rn结果:+CIND:("service",(0-1)),("call",(0-1)),("callsetup",(0-3)),("battchg",(0-5))),("signal",(0-5)),("roaming",(0-1)),("callheld",(0-2))然后发送命令:ATD0000000000r结果:OKD:(“服务”,(0-1)),(“呼叫”,(0-1)),(“呼叫设置”,(0-3)),(“batchg”,(0-5))),("signal",(0-5)),("roaming",(0-1)),("callheld",(0-2))但它实际上并没有拨号:(endedit----——————————————解决方案————————————————下面的代码现在可以通过我的iPhone表盘运行。这一刻真的很艰难,因为我只是测试看看我是否能让它工作。对于任何其他想要做类似事情的人来说,这应该足够了。StringdeviceAddr="00:00:00:00:00:00";BluetoothAddress地址=BluetoothAddress.Parse(deviceAddr);BluetoothEndPointrep=newBluetoothEndPoint(addr,BluetoothService.Handsfree);BluetoothClientcli=newBluetoothClient();cli.连接(代表);流peerStream=cli.GetStream();StringdialCmd1="AT+CMERr";StringdialCmd2="AT+CIND=?r";StringdialCmd3="AT+BRSF=r";StringdialCmd4="ATD0000000000;r";字节[]dcB=System.Text.Encoding.ASCII.GetBytes(dialCmd1);peerStream.Write(dcB,0,dcB.Length);Byte[]sRes=newByte[200];peerStream.Read(sRes,0,199);textBox1.Text=textBox1.Text+"nr--------nr"+System.Text.Encoding.ASCII.GetString(sRes);dcB=System.Text.Encoding.ASCII.GetBytes(dialCmd2);peerStream.Write(dcB,0,dcB.Length);peerStream.Read(sRes,0,199);textBox1.Text=textBox1.Text+"nr--------nr"+System.Text.Encoding.ASCII.GetString(sRes);dcB=System.Text.Encoding.ASCII.GetBytes(dialCmd3);peerStream.Write(DCB,0,dcB.长度);peerStream.Read(sRes,0,199);textBox1.Text=textBox1.Text+"nr--------nr"+System.Text.Encoding.ASCII.GetString(sRes);dcB=System.Text.Encoding.ASCII.GetBytes(dialCmd4);peerStream.Write(dcB,0,dcB.Length);peerStream.Read(sRes,0,199);textBox1.Text=textBox1.Text+"nr--------nr"+System.Text.Encoding.ASCII.GetString(sRes);peerStream.Close();cli.关闭();尝试找出ATrn(或)ATH对rn的响应如果响应为“OKrn”,请尝试在ATD和号码后不带空格的拨号命令。作为32feet.NET的维护者,我很想知道。希望具有HSP/HFP知识的人可以解释为什么这不起作用。我唯一的猜测是电话拒绝连接,因为我们不接受/创建音频通道的SCO通道。但是,在您的情况下...AT命令由CR(0Dh)终止;还是分号相同?以上就是C#学习教程:蓝牙拨号32feet.net及c#分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处:
