蓝牙和C#PC - >没有配对的手机连接

时间:2012-11-23 12:31:19

标签: c# bluetooth 32feet

我正在尝试编写简单的应用程序,它会向蓝牙适配器范围内的手机发送短信息。

我的第一次尝试是发送文件:我可以将文件从PC发送到手机,但我必须在手机和PC上输入PIN。

我宁愿发短信(比如推送信息) - 是否可以不用配对设备发送短信?

如果无法发送推送消息,也许我可以在不请求PIN的情况下发送简单文件?

我使用32feet库。

示例代码(用于将文件发送到所选设备)

static int BTSendFile(string adres, string FileName)                            
        {
            Uri uri = new Uri("obex://" + adres + '/' + Path.GetFileName(FileName));
            ObexWebRequest req = new ObexWebRequest(uri);

            req.ReadFile(FileName);

            ObexWebResponse rsp = (ObexWebResponse)req.GetResponse();

            return (int)rsp.StatusCode;

        }

2 个答案:

答案 0 :(得分:0)

快速回答是;不,你总是需要某种配对。

但如果你看一下那里的different kinds of pairing,你会发现BT 2.1支持安全简单配对(SSP) Just Works -模式。这允许您(几乎)配对设备而无需任何用户交互。来自维基百科:

  

正常工作:正如名称所暗示的那样,此方法才有效。无需用户交互;然而,设备可以提示用户确认配对过程。该方法通常由具有非常有限的IO能力的耳机使用,并且比通常用于这组有限设备的传统配对的固定PIN机制更安全。这种方法不能提供中间保护。

然而,因为“此方法通常由具有非常有限的IO功能的耳机使用”,它可能不适用于您正在谈论的手机,但我认为您应该知道:)< / p>

答案 1 :(得分:0)

根据官方蓝牙消息访问配置文件,即处理通过远程设备访问手机上的SMS / MMS系统的特定蓝牙配置文件:

&#39; MCE设备只有在成功创建安全连接后才能使用MSE设备的服务。这包括交换安全初始化消息,创建链接密钥以及启用加密&#39;

来自:https://developer.bluetooth.org/TechnologyOverview/Pages/MAP.aspx

如果您有兴趣,还有指向完整规格的链接。

这证明需要安全配对,我认为这涉及密钥。我的经验是,一旦设备配对,只要设备记住该配对(即我已经将设备配对一次而不必再次进行配对),就可以在不重复配对的情况下进行连接。至于khellang上面提到的更简单,非键控的配对,我还没有看到任何关于这一点 - 如果它纯粹用于像耳机这样的设备那么安全要求可能会更低,因为他们不太可能想要对设备进行写访问?