在没有配对的情况下通过蓝牙在java中将文件从pc发送到移动设备

时间:2012-09-28 13:05:03

标签: java bluetooth bluecove obex

我正在使用java开发一个桌面应用程序来向周围的设备发送文件。 已经完成但是我遇到了问题,当发送操作尝试开始时,移动设备中会出现配对消息。我的应用程序使用bluecove库.Bluecove在其网站上有一个示例应用程序,通过蓝牙发送文件,发送时不需要配对files.download从这里http://www.bluecove.org/bluecove-examples/obex-install/push.jnlp

这是我的代码,它将文件发送到蓝牙设备:

Connection connection = Connector.open(btConnectionURL);
// connection obtained

// now, let's create a session and a headerset objects
ClientSession cs = (ClientSession) connection;

HeaderSet hsConnectReply = cs.connect(null);
if (hsConnectReply.getResponseCode() != ResponseCodes.OBEX_HTTP_OK) {
System.out.println("Error while connecting device");
    return;
}   
HeaderSet hs = cs.createHeaderSet();
hs.setHeader(HeaderSet.NAME, filename);
hs.setHeader(HeaderSet.TYPE,
        new MimetypesFileTypeMap().getContentType(new File(filen)));
hs.setHeader(HeaderSet.LENGTH, new Long(file.length));

Operation putOperation = cs.put(hs);

OutputStream outputStream = putOperation.openOutputStream();
outputStream.write(file);
// file push complete

outputStream.close();
putOperation.close();

cs.disconnect(null);

connection.close();

我的案例中的网址是:btgoep:// 001FDF08DEEC:9; authenticate = false; encrypt = false; master = false

我想知道我的应用和bluecove示例应用之间有什么区别。 提前完成。

1 个答案:

答案 0 :(得分:2)

基于this,您可以在.net中执行自动身份验证。

根据我在bluecove的经验,您需要覆盖RemoteDevice.authenticate()函数并为服务器提供硬编码的密码,并使客户端可以输入该号码进行身份验证! 使用这种方法,您可以进行配对,但无需在服务器端手动输入!