to top
Android APIs
public class

UsbManager

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

Class Overview

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.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final String ACTION_USB_ACCESSORY_ATTACHED

Added in API level 12

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"

public static final String ACTION_USB_ACCESSORY_DETACHED

Added in API level 12

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"

public static final String ACTION_USB_DEVICE_ATTACHED

Added in API level 12

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"

public static final String ACTION_USB_DEVICE_DETACHED

Added in API level 12

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"

public static final String EXTRA_ACCESSORY

Added in API level 12

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

Constant Value: "accessory"

public static final String EXTRA_DEVICE

Added in API level 12

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

Constant Value: "device"

public static final String EXTRA_PERMISSION_GRANTED

Added in API level 12

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

public UsbAccessory[] getAccessoryList ()

Added in API level 12

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

Returns
  • list of USB accessories, or null if none are attached.

public HashMap<StringUsbDevice> getDeviceList ()

Added in API level 12

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 containing all connected USB devices.

public boolean hasPermission (UsbDevice device)

Added in API level 12

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 to check permissions for
Returns
  • true if caller has permission

public boolean hasPermission (UsbAccessory accessory)

Added in API level 12

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 to check permissions for
Returns
  • true if caller has permission

public ParcelFileDescriptor openAccessory (UsbAccessory accessory)

Added in API level 12

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

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

public UsbDeviceConnection openDevice (UsbDevice device)

Added in API level 12

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

Parameters
device the device to open
Returns

public void requestPermission (UsbAccessory accessory, PendingIntent pi)

Added in API level 12

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 to request permissions for
pi PendingIntent for returning result

public void requestPermission (UsbDevice device, PendingIntent pi)

Added in API level 12

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 to request permissions for
pi PendingIntent for returning result