java 电脑向手机发送文件

本文介绍了如何使用Java的bluecove.jar库实现电脑向手机发送文件的过程,包括寻找蓝牙设备并进行文件传输的步骤。提供了一个项目的下载链接以供实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.手机向手机发送文件

     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());
        }
    }

项目下载:点我获取蓝牙发送文件     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值