一.手机向手机发送文件
1.这里需要一个jar包:bluecove.jar 项目里也会有带在lib里
2. 寻找蓝牙设备:
private void searchButtonActionPerformed() {
try {
Printer.initModel(listModel, deviceList);
Printer.initMessage();
Printer.setStatus("Searching for devices");
bluetoothServiceDiscovery = new ServiceDiscovery(listModel);
LocalDevice localDevice = LocalDevice.getLocalDevice();
Printer.setMessage("Local device: " + localDevice.getFriendlyName());
agent = localDevice.getDiscoveryAgent();
agent.startInquiry(DiscoveryAgent.GIAC, bluetoothServiceDiscovery);
ServiceDiscovery.initInquiry();
ServiceDiscovery.printDevices();
}
catch(Exception e){
e.getMessage();
}
}
3.选择蓝牙设备,发送文件
private static void sendMessage() {
try {
Connection connection = Connector.open(connectionURL);
Printer.setStatus("Connection obtained");
ClientSession clientSession = (ClientSession) connection;
HeaderSet headerSet = clientSession.createHeaderSet();
clientSession.connect(headerSet);
Printer.setStatus("OBEX session created");
//弹框
File file = openFile();
if(file!=null){
InputStream inputStream = new FileInputStream(file);
byte[] filebytes = new byte[inputStream.available()];
inputStream.read(filebytes);
inputStream.close();
headerSet = clientSession.createHeaderSet();
headerSet.setHeader(HeaderSet.NAME, file.getName());
headerSet.setHeader(HeaderSet.TYPE, "image/jpeg");
headerSet.setHeader(HeaderSet.LENGTH, (long) filebytes.length);
Operation operation = clientSession.put(headerSet);
Printer.setStatus("Pushing file: " + file.getName());
Printer.setStatus("File size: " + filebytes.length + " bytes");
OutputStream outputStream = operation.openOutputStream();
outputStream.write(filebytes);
Printer.setStatus("File push completed");
outputStream.close();
operation.close();
clientSession.disconnect(null);
connection.close();
}
}
catch (IOException e) {
Printer.setStatus("Connection: " + e.getMessage());
}
}