【发布时间】:2018-05-02 10:05:05
【问题描述】:
我尝试使用 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
{
}
}
}
【问题讨论】:
-
你是如何传递意图的,如果可能的话,还有 logcat
-
那些 Bixolon 打印机有一个基于 Java 的 SDK(包括用于打印 PDF 和图像的 ABI 本机库),它们需要被初始化。您也许可以查看他们的 Linux CUPS 驱动程序以确定所需的初始化和不同打印功能的转义序列,但围绕他们的 .Jar 库创建 Xamarin.Android 绑定库会容易得多