小编fra*_*gle的帖子

使用C#中的32feet.net库从Windows发送bMessage到消息访问服务器

我正在尝试从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)

c# bluetooth 32feet

12
推荐指数
1
解决办法
1541
查看次数

标签 统计

32feet ×1

bluetooth ×1

c# ×1