smart_usb_android 1.0.0 copy "smart_usb_android: ^1.0.0" to clipboard
smart_usb_android: ^1.0.0 copied to clipboard

PlatformAndroid

Android USB plugin for Flutter

smart_usb_android #

Android USB plugin for Flutter

Usage #

List devices #

await SmartUsbAndroid.init();
// ...
var deviceList = await SmartUsbAndroid.getDeviceList();
// ...
await SmartUsbAndroid.exit();

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 SmartUsbAndroid.getDevicesWithDescription();
var deviceList = descriptions.map((e) => e.device).toList();
print('descriptions $descriptions');

(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 SmartUsbAndroid.getDevicesWithDescription(requestPermission: false);

Get device description #

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

Any of these attributes can be null.

 var description = await SmartUsbAndroid.getDeviceDescription(device);
 print('description ${description.toMap()}');

(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 SmartUsbAndroid.getDeviceDescription(requestPermission: false);

Connect device #

var connectDevice = await SmartUsbAndroid.connectDevice(device);
print('connectDevice $connectDevice');
// ...

Check permission #

Android Only

var hasPermission = await SmartUsbAndroid.hasPermission(device);
print('hasPermission $hasPermission');

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 SmartUsbAndroid.requestPermission(device);
print('hasPermission $hasPermission');

Open/Close device #

var openDevice = await SmartUsbAndroid.openDevice(device);
print('openDevice $openDevice');
// ...
await SmartUsbAndroid.closeDevice();

Get/Set configuration #

var configuration = await SmartUsbAndroid.getConfiguration(index);
print('getConfiguration $configuration');
// ...
var setConfiguration = await SmartUsbAndroid.setConfiguration(configuration);
print('setConfiguration $getConfiguration');

Claim/Release interface #

var claimInterface = await SmartUsbAndroid.claimInterface(interface);
print('claimInterface $claimInterface');
// ...
var releaseInterface = await SmartUsbAndroid.releaseInterface(interface);
print('releaseInterface $releaseInterface');

Printer #

var send = await SmartUsbAndroid.send(bytes);
print('send $send');

Bulk transfer in/out #

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

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 SmartUsbAndroid.setAutoDetachKernelDriver(true);
1
likes
130
points
2
downloads

Publisher

unverified uploader

Weekly Downloads

Android USB plugin for Flutter

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on smart_usb_android

Packages that implement smart_usb_android