用于DOT Matrix POS打印机的USB打印

时间:2018-05-02 10:05:06

标签: c# android xamarin

我正在尝试使用usbmanager打印到usb打印机,应用程序可以检测打印机设备但是当我运行时它不会打印。没有错误,所有传递的数据都可以。 打印机:Bixolon SRP 275III 键入:USB

private async void printReciept()
 {
 UsbManager m_usbManager;
            m_usbManager = (UsbManager)Application.Context.GetSystemService(Context.UsbService);

            var deviceList = m_usbManager.DeviceList;
            IEnumerable<UsbDevice> deviceIterator = deviceList.Values.AsEnumerable();
            UsbDevice m_usbdevice = null;

            if (deviceIterator.Count() > 0)
            {
                var device = deviceIterator.ElementAt(0);
                m_usbdevice = device;
                string ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
                var mPermissionIntent = PendingIntent.GetBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0);
                m_usbManager.RequestPermission(m_usbdevice, mPermissionIntent);

                    UsbDeviceConnection deviceConnection = null;
                    try
                    {
                        using (var usbInterface = m_usbdevice.GetInterface(0))
                        {
                            using (var usbEndpoint = usbInterface.GetEndpoint(0))
                            {
                             mEndPoint = usbEndpoint;
                                deviceConnection = m_usbManager.OpenDevice(m_usbdevice);

                                byte[] bytesHello = Encoding.UTF8.GetBytes("Hello");


                            deviceConnection.BulkTransfer(usbEndpoint, bytesHello, bytesHello.Length, 0);
                         }
                    }
                    }
                    catch
                    {
                    }


            }
       }

1 个答案:

答案 0 :(得分:0)

您要将要打印的字符串直接发送到批量端点,或者实际上您是在不知道其任何特征的情况下批量转移到找到的第一个端点?我认为它比这复杂一点。

首先尝试确定您的打印机是否支持USB打印类或某些专有实现。你可以轻松地做到这一点将打印机连接到Windows PC并从设备管理器usbdeview或其他类似应用程序查找。

如果它支持打印类,请阅读this文档并根据该文档实现您的驱动程序(或使用您在Android中已有的驱动程序)。如果它只支持专有实现,则需要获取它的规范或进行一些逆向工程。

您可能需要了解可能还需要的PCL