我正在尝试编写简单的应用程序,它会向蓝牙适配器范围内的手机发送短信息。
我的第一次尝试是发送文件:我可以将文件从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;
}
答案 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上面提到的更简单,非键控的配对,我还没有看到任何关于这一点 - 如果它纯粹用于像耳机这样的设备那么安全要求可能会更低,因为他们不太可能想要对设备进行写访问?