我正在尝试从Win7 PC上的C#代码发送bMessage到Samsung Note 2手机.我有32英尺蓝牙库,我正在使用Visual Studio 2013社区版.
这是我目前的代码:
string sendMessage = "";
sendMessage = File.ReadAllText(file_path);
BluetoothClient btClient = new BluetoothClient();
btClient.Connect(btEp);
Stream clientStream = btClient.GetStream();
using (StreamWriter utfWriter = new StreamWriter(clientStream, Encoding.UTF8))
{
utfWriter.Write(sendMessage);
}
Run Code Online (Sandbox Code Playgroud)
btEp是传递给函数的蓝牙端点,用于发送消息并在其他地方定义如下:
BluetoothEndPoint BtEp;
Run Code Online (Sandbox Code Playgroud)
这是使用变量构建的:
BtEp = new BluetoothEndPoint(device.DeviceInfo, mapServiceId);
Run Code Online (Sandbox Code Playgroud)
这两个值都是在运行时从设备获取的,并在执行期间采用以下值:
- mapServiceId {00001132-0000-1000-8000-00805f9b34fb} System.Guid
+ BtEp {BC20A4164A8C:0000113200001000800000805f9b34fb} InTheHand.Net.BluetoothEndPoint
Run Code Online (Sandbox Code Playgroud)
BC20A4164A8C是设备报告的设备地址.
与手机的连接似乎正在工作并访问正确的服务,因为当我执行代码时,手机会提示我询问是否愿意接受从我的PC连接到消息服务器的连接.当语句'btClient.Connect(btEp);'时会发生这种情况.被执行.
据我所知,我通过流读取并发送到手机的文本文件是正确格式化的bMessage,由蓝牙MAP规范定义并在其他地方验证.它的构造如下:
BEGIN:BMSG
VERSION:1.0
STATUS:UNREAD
TYPE:SMS_GSM
FOLDER:TELECOM/MSG/OUTBOX
BEGIN:VCARD
VERSION:2.1
N:(redacted)
TEL:(redacted)
END:VCARD
BEGIN:BENV
BEGIN:VCARD
VERSION:2.1
N:(redacted)
TEL:(redacted)
END:VCARD
BEGIN:BBODY
ENCODING:G-7BIT
LENGTH:47
BEGIN:MSG
This is a short message …Run Code Online (Sandbox Code Playgroud)