7***@qq.com
7***@qq.com
  • 发布:2022-03-09 17:56
  • 更新:2022-03-09 17:56
  • 阅读:1078

通过Native.js 获取安卓蓝牙设备,并尝试连接

分类:Native.js
const main = plus.android.runtimeMainActivity();  
                const Context = plus.android.importClass("android.content.Context");  
                const BManager = main.getSystemService(Context.BLUETOOTH_SERVICE);  
                plus.android.importClass(BManager); //引入相关的method函数  
                const BAdapter = BManager.getAdapter();  
                console.log("BAdapter", BAdapter)  
                plus.android.importClass(BAdapter);//引入相关的method函数,这样之后才会有isEna  
                const lists = BAdapter.getBondedDevices();  
                console.log("lists", lists)  
                plus.android.importClass(lists);  
                // const resultDiv = document.getElementById('bluetooth_list');  
                const iterator = lists.iterator();  
                console.log("iterator", iterator)  
                plus.android.importClass(iterator);  

                while(iterator.hasNext()) {  
                    const d = iterator.next();  
                    plus.android.importClass(d);  
                    //  UUID = plus.android.importClass("java.util.UUID");    
                    console.log("名称:"+d.getName()+",地址:"+d.getAddress());  
                    this.deviceList.push({  
                        name: d.getName(),  
                        deviceId: d.getAddress()  
                    })  
                }  
                const UUID = plus.android.importClass("java.util.UUID");  
                 const  uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");   
                var   device = BAdapter.getRemoteDevice("DC:0D:30:26:CC:2A");    
                plus.android.importClass(device);    
                const   bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid);    
                 plus.android.importClass(bluetoothSocket);   
                 console.log(0)  

                     if (!bluetoothSocket.isConnected()) {    
                         console.log('检测到设备未连接,尝试连接....');    
                         bluetoothSocket.connect();    
                     }    

                     console.log('设备已连接');    
                   if (bluetoothSocket.isConnected()) {    
                       console.log('设备已连接');  
                          var outputStream = bluetoothSocket.getOutputStream();   
                                         // 执行到这里不继续执行了  
                          console.log(outputStream)  
                          plus.android.importClass(outputStream);    
                          console.log(9)  
                          var string = "打印测试\r\n";    
                          console.log(string)  
                          var bytes = plus.android.invoke(string, 'getBytes', 'gbk');    
                          console.log(bytes)  
                          outputStream.write(bytes);    
                          console.log(2)  
                          outputStream.flush();    
                            console.log(3)  
                          device = null //这里关键    
                           console.log(4)  
                          bluetoothSocket.close(); //必须关闭蓝牙连接否则意外断开的话打印错误    
                          console.log(5)  

                      }  
  • 问题1: UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 这个值是固定的吗,如果不是我如何获取
  • 问题2: plus.android.xx 相关API文档详细有没有链接分享
  • 问题3: 官方的实例中,是否适应所有打印机设备
2022-03-09 17:56 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复