Git Product home page Git Product logo

quick_usb's Introduction

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();

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');

(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);

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()}');

(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);

Check permission

Android Only

var hasPermission = await QuickUsb.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 QuickUsb.requestPermission(device);
print('hasPermission $hasPermission');

Open/Close device

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

Get/Set configuration

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

Claim/Release interface

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

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');

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);

quick_usb's People

Contributors

ziakhan110 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.