使用 Android USB Host API,并添加适当的权限,以发送 ZPL 指令到 Zebra 打印机。以下是示例代码:
在 AndroidManifest.xml 文件中添加以下权限:
在 MainActivity.java 文件中添加以下代码:
private static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION"; private UsbManager usbManager; private PendingIntent permissionIntent; private UsbDevice device; private UsbInterface usbInterface; private UsbEndpoint usbEndpoint;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
// 获取 UsbManager 实例
usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
// 创建 PendingIntent,用于 USB 权限请求
permissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
registerReceiver(mUsbReceiver, filter);
// 获取目标设备
final List drivers = UsbSerialProber.getDefaultProber().findAllDrivers(usbManager);
for (UsbSerialDriver driver : drivers) {
final List ports = driver.getPorts();
for (UsbSerialPort port : ports) {
final UsbDevice device = port.getDriver().getDevice();
if (device.getVendorId() == VENDOR_ID && device.getProductId() == PRODUCT_ID) {
// 找到目标设备
this.device = device;
this.usbInterface = device.getInterface(INTERFACE);
this.usbEndpoint = usbInterface.getEndpoint(ENDPOINT);
break;
}
}
}
// 请求 USB 设备权限
usbManager.requestPermission(device, permissionIntent);
}
private BroadcastReceiver mUsbReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (ACTION_USB_PERMISSION.equals(action)) { synchronized (this) { // 获取 UsbDevice 实例,验证设
下一篇:android无法tts