Skip to content

Most visited

Recently visited

navigation
Added in API level 12

UsbManager

public class UsbManager
extends Object

java.lang.Object
   ↳ android.hardware.usb.UsbManager


This class allows you to access the state of USB and communicate with USB devices. Currently only host mode is supported in the public API.

You can obtain an instance of this class by calling Context.getSystemService().

UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);

Developer Guides

For more information about communicating with USB hardware, read the USB developer guide.

Summary

Constants

String ACTION_USB_ACCESSORY_ATTACHED

Broadcast Action: A broadcast for USB accessory attached event.

String ACTION_USB_ACCESSORY_DETACHED

Broadcast Action: A broadcast for USB accessory detached event.

String ACTION_USB_DEVICE_ATTACHED

Broadcast Action: A broadcast for USB device attached event.

String ACTION_USB_DEVICE_DETACHED

Broadcast Action: A broadcast for USB device detached event.

String EXTRA_ACCESSORY

Name of extra for ACTION_USB_ACCESSORY_ATTACHED and ACTION_USB_ACCESSORY_DETACHED broadcasts containing the UsbAccessory object for the accessory.

String EXTRA_DEVICE

Name of extra for ACTION_USB_DEVICE_ATTACHED and ACTION_USB_DEVICE_DETACHED broadcasts containing the UsbDevice object for the device.

String EXTRA_PERMISSION_GRANTED

Name of extra added to the PendingIntent passed into requestPermission(UsbDevice, PendingIntent) or requestPermission(UsbAccessory, PendingIntent) containing a boolean value indicating whether the user granted permission or not.

Public methods

UsbAccessory[] getAccessoryList()

Returns a list of currently attached USB accessories.

HashMap<StringUsbDevice> getDeviceList()

Returns a HashMap containing all USB devices currently attached.

boolean hasPermission(UsbDevice device)

Returns true if the caller has permission to access the device.

boolean hasPermission(UsbAccessory accessory)

Returns true if the caller has permission to access the accessory.

ParcelFileDescriptor openAccessory(UsbAccessory accessory)

Opens a file descriptor for reading and writing data to the USB accessory.

UsbDeviceConnection openDevice(UsbDevice device)

Opens the device so it can be used to send and receive data using UsbRequest.

void requestPermission(UsbAccessory accessory, PendingIntent pi)

Requests temporary permission for the given package to access the accessory.

void requestPermission(UsbDevice device, PendingIntent pi)

Requests temporary permission for the given package to access the device.

Inherited methods

From class java.lang.Object

Constants

ACTION_USB_ACCESSORY_ATTACHED

Added in API level 12
String ACTION_USB_ACCESSORY_ATTACHED

Broadcast Action: A broadcast for USB accessory attached event. This intent is sent when a USB accessory is attached.

Constant Value: "android.hardware.usb.action.USB_ACCESSORY_ATTACHED"

ACTION_USB_ACCESSORY_DETACHED

Added in API level 12
String ACTION_USB_ACCESSORY_DETACHED

Broadcast Action: A broadcast for USB accessory detached event. This intent is sent when a USB accessory is detached.

Constant Value: "android.hardware.usb.action.USB_ACCESSORY_DETACHED"

ACTION_USB_DEVICE_ATTACHED

Added in API level 12
String ACTION_USB_DEVICE_ATTACHED

Broadcast Action: A broadcast for USB device attached event. This intent is sent when a USB device is attached to the USB bus when in host mode.

Constant Value: "android.hardware.usb.action.USB_DEVICE_ATTACHED"

ACTION_USB_DEVICE_DETACHED

Added in API level 12
String ACTION_USB_DEVICE_DETACHED

Broadcast Action: A broadcast for USB device detached event. This intent is sent when a USB device is detached from the USB bus when in host mode.

Constant Value: "android.hardware.usb.action.USB_DEVICE_DETACHED"

EXTRA_ACCESSORY

Added in API level 12
String EXTRA_ACCESSORY

Name of extra for ACTION_USB_ACCESSORY_ATTACHED and ACTION_USB_ACCESSORY_DETACHED broadcasts containing the UsbAccessory object for the accessory.

Constant Value: "accessory"

EXTRA_DEVICE

Added in API level 12
String EXTRA_DEVICE

Name of extra for ACTION_USB_DEVICE_ATTACHED and ACTION_USB_DEVICE_DETACHED broadcasts containing the UsbDevice object for the device.

Constant Value: "device"

EXTRA_PERMISSION_GRANTED

Added in API level 12
String EXTRA_PERMISSION_GRANTED

Name of extra added to the PendingIntent passed into requestPermission(UsbDevice, PendingIntent) or requestPermission(UsbAccessory, PendingIntent) containing a boolean value indicating whether the user granted permission or not.

Constant Value: "permission"

Public methods

getAccessoryList

Added in API level 12
UsbAccessory[] getAccessoryList ()

Returns a list of currently attached USB accessories. (in the current implementation there can be at most one)

Returns
UsbAccessory[] list of USB accessories, or null if none are attached.

getDeviceList

Added in API level 12
HashMap<StringUsbDevice> getDeviceList ()

Returns a HashMap containing all USB devices currently attached. USB device name is the key for the returned HashMap. The result will be empty if no devices are attached, or if USB host mode is inactive or unsupported.

Returns
HashMap<StringUsbDevice> HashMap containing all connected USB devices.

hasPermission

Added in API level 12
boolean hasPermission (UsbDevice device)

Returns true if the caller has permission to access the device. Permission might have been granted temporarily via requestPermission(UsbDevice, PendingIntent) or by the user choosing the caller as the default application for the device.

Parameters
device UsbDevice: to check permissions for
Returns
boolean true if caller has permission

hasPermission

Added in API level 12
boolean hasPermission (UsbAccessory accessory)

Returns true if the caller has permission to access the accessory. Permission might have been granted temporarily via requestPermission(UsbAccessory, PendingIntent) or by the user choosing the caller as the default application for the accessory.

Parameters
accessory UsbAccessory: to check permissions for
Returns
boolean true if caller has permission

openAccessory

Added in API level 12
ParcelFileDescriptor openAccessory (UsbAccessory accessory)

Opens a file descriptor for reading and writing data to the USB accessory.

Parameters
accessory UsbAccessory: the USB accessory to open
Returns
ParcelFileDescriptor file descriptor, or null if the accessor could not be opened.

openDevice

Added in API level 12
UsbDeviceConnection openDevice (UsbDevice device)

Opens the device so it can be used to send and receive data using UsbRequest.

Parameters
device UsbDevice: the device to open
Returns
UsbDeviceConnection a UsbDeviceConnection, or null if open failed

requestPermission

Added in API level 12
void requestPermission (UsbAccessory accessory, 
                PendingIntent pi)

Requests temporary permission for the given package to access the accessory. This may result in a system dialog being displayed to the user if permission had not already been granted. Success or failure is returned via the PendingIntent pi. If successful, this grants the caller permission to access the accessory only until the device is disconnected. The following extras will be added to pi:

Parameters
accessory UsbAccessory: to request permissions for
pi PendingIntent: PendingIntent for returning result

requestPermission

Added in API level 12
void requestPermission (UsbDevice device, 
                PendingIntent pi)

Requests temporary permission for the given package to access the device. This may result in a system dialog being displayed to the user if permission had not already been granted. Success or failure is returned via the PendingIntent pi. If successful, this grants the caller permission to access the device only until the device is disconnected. The following extras will be added to pi:

Parameters
device UsbDevice: to request permissions for
pi PendingIntent: PendingIntent for returning result
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.