android 无sdk usb/蓝牙 连接热敏打印机外卖小票打印

 这是部分代码

 获取代码 ->发送标题作为验证信息到该邮箱 itperson@foxmail.com ​​​​​​

/** js spi 蓝牙连接 接收 mac address ;返回mac address */
    @UniJSMethod
    public void bluetoothConnect(String macAddress, UniJSCallback callback) {
        checkPermission();
        /* 连接前先关闭之前连接的打印机 */
        closePort();
        new DeviceConnFactoryManager.Build().setId(id).setConnMethod(DeviceConnFactoryManager.CONN_METHOD.BLUETOOTH).setMacAddress(macAddress).build();
        //配置完信息,就可以打开端口连接了
        Log.i("TAG", ":连接蓝牙"+id);
        threadPool = ThreadPool.getInstantiation();
        threadPool.addTask(new Runnable() {
            @Override
            public void run() {
                DeviceConnFactoryManager.getDeviceConnFactoryManagers()[id].openPort();
            }
        });
        callback.invoke(getConnDeviceInfo());
    }
    /** js spi 获取usb设备列表 返回usb列表数据*/
    @UniJSMethod(uiThread = false)
    public void getUsbDeviceList(UniJSCallback callback){
        //获取USB管理器
        usbManager = (UsbManager) Application.getApplication().getSystemService(Context.USB_SERVICE);
        HashMap<String, UsbDevice> deviceList = usbManager.getDeviceList();
        ArrayList<UsbDevice> usbDeviceList = new ArrayList<>();
        int count = deviceList.size();
        Log.d("设备数量----", "count " + count);
        if (count>0){
            // TODO 需要过滤掉出入设备
            usbDeviceList.addAll(deviceList.values());
        }
        callback.invokeAndKeepAlive(usbDeviceList);
    }
    /** js spi usb连接 接收USB设备名称 ;返回连接设备名称*/
    @UniJSMethod
    public void usbConnect(String usbName, JSCallback callback) throws JSONException {
        Log.i("TAG", ":USB连接"+usbName);
//        String usbName = jsonObject.getString("deviceName");
        /* 注册连接广播 */
        initBroadcast();
        /* 连接前先关闭之前连接的打印机 */
        closePort();
        Log.i("TAG", ":USB连接---"+usbName);
        //通过USB设备名找到USB设备
        UsbDevice usbDevice = MqUtils.getUsbDeviceFromName(Application.getApplication(), usbName);
        //判断USB设备是否有权限
        if (usbManager.hasPermission(usbDevice)) {
            usbConn(usbDevice);
        } else {//请求权限
            mPermissionIntent = PendingIntent.getBroadcast(Application.getApplication(), 0, new Intent(ACTION_USB_PERMISSION), 0);
            usbManager.requestPermission(usbDevice, mPermissionIntent);
        }
        callback.invoke(getConnDeviceInfo());
    }
    /** js api 打印 测试不用传json值 */
    @UniJSMethod
    public void printerContent(JSONObject json) {
        Log.i("TAG", "准备打印");
        threadPool = ThreadPool.getInstantiation();
        threadPool.addTask(new Runnable() {
            @Override
            public void run() {
                //先判断打印机是否连接
                if (DeviceConnFactoryManager.getDeviceConnFactoryManagers()[id] == null || !DeviceConnFactoryManager.getDeviceConnFactoryManagers()[id].getConnState()
                ) {
                    mHandler.obtainMessage(CONN_PRINTER).sendToTarget();
                }
                if (DeviceConnFactoryManager.getDeviceConnFactoryManagers()[id].getCurrentPrinterCommand() == PrinterCommand.ESC) {
                    DeviceConnFactoryManager.getDeviceConnFactoryManagers()[id].sendDataImmediately(PrintContent.printer());
                } else {
                    mHandler.obtainMessage(PRINTER_COMMAND_ERROR).sendToTarget();
                }
            }
        });
    }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

残月落红

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值