quick_usb 0.4.0 copy "quick_usb: ^0.4.0" to clipboard
quick_usb: ^0.4.0 copied to clipboard

A cross-platform (Android/Windows/macOS/Linux) USB plugin for Flutter

quick_usb #

A cross-platform (Android/Windows/macOS/Linux) USB plugin for Flutter

Usage #

List devices #

await QuickUsb.init();
// ...
var deviceList = await QuickUsb.getDeviceList();
// ...
await QuickUsb.exit();
copied to clipboard

List devices with additional description #

Returns devices list with manufacturer, product and serial number description.

Any of these attributes can be null.

var descriptions = await QuickUsb.getDevicesWithDescription();
var deviceList = descriptions.map((e) => e.device).toList();
print('descriptions $descriptions');
copied to clipboard

(Android Only) Android requires permission for each device in order to get the serial number. The user will be asked for permission for each device if needed. If you do not require the serial number, you can avoid requesting permission using:

var descriptions = await QuickUsb.getDevicesWithDescription(requestPermission: false);
copied to clipboard

Get device description #

Returns manufacturer, product and serial number description for specified device.

Any of these attributes can be null.

 var description = await QuickUsb.getDeviceDescription(device);
 print('description ${description.toMap()}');
copied to clipboard

(Android Only) Android requires permission for each device in order to get the serial number. The user will be asked for permission for each device if needed. If you do not require the serial number, you can avoid requesting permission using:

var description = await QuickUsb.getDeviceDescription(requestPermission: false);
copied to clipboard

Check permission #

Android Only

var hasPermission = await QuickUsb.hasPermission(device);
print('hasPermission $hasPermission');
copied to clipboard

Request permission #

Android Only

Request permission for a device. The permission dialog is not shown if the app already has permission to access the device.

var hasPermission = await QuickUsb.requestPermission(device);
print('hasPermission $hasPermission');
copied to clipboard

Open/Close device #

var openDevice = await QuickUsb.openDevice(device);
print('openDevice $openDevice');
// ...
await QuickUsb.closeDevice();
copied to clipboard

Get/Set configuration #

var configuration = await QuickUsb.getConfiguration(index);
print('getConfiguration $configuration');
// ...
var setConfiguration = await QuickUsb.setConfiguration(configuration);
print('setConfiguration $getConfiguration');
copied to clipboard

Claim/Release interface #

var claimInterface = await QuickUsb.claimInterface(interface);
print('claimInterface $claimInterface');
// ...
var releaseInterface = await QuickUsb.releaseInterface(interface);
print('releaseInterface $releaseInterface');
copied to clipboard

Bulk transfer in/out #

var bulkTransferIn = await QuickUsb.bulkTransferIn(endpoint, 1024, timeout: 2000);
print('bulkTransferIn ${hex.encode(bulkTransferIn)}');
// ...
var bulkTransferOut = await QuickUsb.bulkTransferOut(endpoint, data, timeout: 2000);
print('bulkTransferOut $bulkTransferOut');
copied to clipboard

Set auto detach kernel driver #

Enable/disable libusb's automatic kernel driver detachment on linux. When this is enabled libusb will automatically detach the kernel driver on an interface when claiming the interface, and attach it when releasing the interface.

Automatic kernel driver detachment is disabled on newly opened device handles by default.

This is supported only on linux, on other platforms this function does nothing.

await QuickUsb.setAutoDetachKernelDriver(true);
copied to clipboard
105
likes
130
points
143
downloads

Publisher

verified publisherwoodemi.com

Weekly Downloads

2024.09.10 - 2025.03.25

A cross-platform (Android/Windows/macOS/Linux) USB plugin for Flutter

Homepage
Repository (GitHub)

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

ffi, flutter, libusb, plugin_platform_interface

More

Packages that depend on quick_usb