public final class USBMonitor
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static interface |
USBMonitor.OnDeviceConnectListener
USB機器の状態変更時のコールバックリスナー
|
static class |
USBMonitor.UsbControlBlock
control class
never reuse the instance when it closed
|
static class |
USBMonitor.UsbDeviceInfo |
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ACTION_USB_DEVICE_ATTACHED |
Constructor and Description |
---|
USBMonitor(android.content.Context context,
USBMonitor.OnDeviceConnectListener listener) |
Modifier and Type | Method and Description |
---|---|
void |
addDeviceFilter(DeviceFilter filter)
デバイスフィルターを追加
|
void |
addDeviceFilter(java.util.List<DeviceFilter> filters)
add device filters
|
void |
destroy()
Release all related resources,
never reuse again
|
void |
dumpDevices()
output device list to LogCat
|
int |
getDeviceCount()
return the number of connected USB devices that matched device filter
|
static USBMonitor.UsbDeviceInfo |
getDeviceInfo(android.content.Context context,
android.hardware.usb.UsbDevice device)
ベンダー名・製品名・バージョン・シリアルを取得する
#updateDeviceInfo(final UsbManager, final UsbDevice, final UsbDeviceInfo)のヘルパーメソッド
|
USBMonitor.UsbDeviceInfo |
getDeviceInfo(android.hardware.usb.UsbDevice device)
ベンダー名・製品名・バージョン・シリアルを取得する
|
static int |
getDeviceKey(android.hardware.usb.UsbDevice device)
デバイスキーを整数として取得
getDeviceKeyNameで得られる文字列のhasCodeを取得
ベンダーID, プロダクトID, デバイスクラス, デバイスサブクラス, デバイスプロトコルから生成
同種の製品だと同じデバイスキーになるので注意
|
static int |
getDeviceKey(android.hardware.usb.UsbDevice device,
boolean useNewAPI)
デバイスキーを整数として取得
getDeviceKeyNameで得られる文字列のhasCodeを取得
useNewAPI=falseで同種の製品だと同じデバイスキーになるので注意
|
static int |
getDeviceKey(android.hardware.usb.UsbDevice device,
java.lang.String serial,
boolean useNewAPI)
デバイスキーを整数として取得
getDeviceKeyNameで得られる文字列のhasCodeを取得
serialがnullでuseNewAPI=falseで同種の製品だと同じデバイスキーになるので注意
|
static java.lang.String |
getDeviceKeyName(android.hardware.usb.UsbDevice device)
USB機器毎の設定保存用にデバイスキー名を生成する。
|
static java.lang.String |
getDeviceKeyName(android.hardware.usb.UsbDevice device,
boolean useNewAPI)
USB機器毎の設定保存用にデバイスキー名を生成する。
|
static java.lang.String |
getDeviceKeyName(android.hardware.usb.UsbDevice device,
java.lang.String serial,
boolean useNewAPI)
USB機器毎の設定保存用にデバイスキー名を生成する。
|
java.util.List<android.hardware.usb.UsbDevice> |
getDeviceList()
return device list, return empty list if no device matched
|
java.util.List<android.hardware.usb.UsbDevice> |
getDeviceList(DeviceFilter filter)
return device list, return empty list if no device matched
|
java.util.List<android.hardware.usb.UsbDevice> |
getDeviceList(java.util.List<DeviceFilter> filters)
return device list, return empty list if no device matched
|
java.util.Iterator<android.hardware.usb.UsbDevice> |
getDevices()
get USB device list, without filter
|
boolean |
hasPermission(android.hardware.usb.UsbDevice device)
return whether the specific Usb device has permission
|
boolean |
isRegistered() |
USBMonitor.UsbControlBlock |
openDevice(android.hardware.usb.UsbDevice device)
指定したUsbDeviceをopenする
|
void |
register()
register BroadcastReceiver to monitor USB events
|
void |
removeDeviceFilter(DeviceFilter filter)
デバイスフィルターを削除
|
void |
removeDeviceFilter(java.util.List<DeviceFilter> filters)
remove device filters
|
boolean |
requestPermission(android.hardware.usb.UsbDevice device)
request permission to access to USB device
|
void |
setDeviceFilter(DeviceFilter filter)
set device filter
|
void |
setDeviceFilter(java.util.List<DeviceFilter> filters)
set device filters
|
void |
unregister()
unregister BroadcastReceiver
|
static USBMonitor.UsbDeviceInfo |
updateDeviceInfo(android.hardware.usb.UsbManager manager,
android.hardware.usb.UsbDevice device,
USBMonitor.UsbDeviceInfo _info)
ベンダー名・製品名・バージョン・シリアルを取得する
|
public static final java.lang.String ACTION_USB_DEVICE_ATTACHED
public USBMonitor(android.content.Context context, USBMonitor.OnDeviceConnectListener listener)
public void destroy()
public void register() throws java.lang.IllegalStateException
java.lang.IllegalStateException
public void unregister() throws java.lang.IllegalStateException
java.lang.IllegalStateException
public boolean isRegistered()
public void setDeviceFilter(DeviceFilter filter) throws java.lang.IllegalStateException
filter
- java.lang.IllegalStateException
public void addDeviceFilter(DeviceFilter filter) throws java.lang.IllegalStateException
filter
- java.lang.IllegalStateException
public void removeDeviceFilter(DeviceFilter filter) throws java.lang.IllegalStateException
filter
- java.lang.IllegalStateException
public void setDeviceFilter(java.util.List<DeviceFilter> filters) throws java.lang.IllegalStateException
filters
- java.lang.IllegalStateException
public void addDeviceFilter(java.util.List<DeviceFilter> filters) throws java.lang.IllegalStateException
filters
- java.lang.IllegalStateException
public void removeDeviceFilter(java.util.List<DeviceFilter> filters) throws java.lang.IllegalStateException
filters
- java.lang.IllegalStateException
public int getDeviceCount() throws java.lang.IllegalStateException
java.lang.IllegalStateException
public java.util.List<android.hardware.usb.UsbDevice> getDeviceList() throws java.lang.IllegalStateException
java.lang.IllegalStateException
public java.util.List<android.hardware.usb.UsbDevice> getDeviceList(java.util.List<DeviceFilter> filters) throws java.lang.IllegalStateException
filters
- java.lang.IllegalStateException
public java.util.List<android.hardware.usb.UsbDevice> getDeviceList(DeviceFilter filter) throws java.lang.IllegalStateException
filter
- java.lang.IllegalStateException
public java.util.Iterator<android.hardware.usb.UsbDevice> getDevices() throws java.lang.IllegalStateException
java.lang.IllegalStateException
public final void dumpDevices()
public final boolean hasPermission(android.hardware.usb.UsbDevice device) throws java.lang.IllegalStateException
device
- java.lang.IllegalStateException
public boolean requestPermission(android.hardware.usb.UsbDevice device)
device
- public USBMonitor.UsbControlBlock openDevice(android.hardware.usb.UsbDevice device) throws java.lang.SecurityException
device
- java.lang.SecurityException
- パーミッションがなければSecurityExceptionを投げるpublic static final java.lang.String getDeviceKeyName(android.hardware.usb.UsbDevice device)
device
- nullなら空文字列を返すpublic static final java.lang.String getDeviceKeyName(android.hardware.usb.UsbDevice device, boolean useNewAPI)
device
- useNewAPI
- public static final java.lang.String getDeviceKeyName(android.hardware.usb.UsbDevice device, java.lang.String serial, boolean useNewAPI)
device
- nullなら空文字列を返すserial
- UsbDeviceConnection#getSerialで取得したシリアル番号を渡す, nullでuseNewAPI=trueでAPI>=21なら内部で取得useNewAPI
- API>=21またはAPI>=23のみで使用可能なメソッドも使用する(ただし機器によってはnullが返ってくるので有効かどうかは機器による)public static final int getDeviceKey(android.hardware.usb.UsbDevice device)
device
- nullなら0を返すpublic static final int getDeviceKey(android.hardware.usb.UsbDevice device, boolean useNewAPI)
device
- useNewAPI
- public static final int getDeviceKey(android.hardware.usb.UsbDevice device, java.lang.String serial, boolean useNewAPI)
device
- nullなら0を返すserial
- UsbDeviceConnection#getSerialで取得したシリアル番号を渡す, nullでuseNewAPI=trueでAPI>=21なら内部で取得useNewAPI
- API>=21またはAPI>=23のみで使用可能なメソッドも使用する(ただし機器によってはnullが返ってくるので有効かどうかは機器による)public USBMonitor.UsbDeviceInfo getDeviceInfo(android.hardware.usb.UsbDevice device)
device
- public static USBMonitor.UsbDeviceInfo getDeviceInfo(android.content.Context context, android.hardware.usb.UsbDevice device)
context
- device
- public static USBMonitor.UsbDeviceInfo updateDeviceInfo(android.hardware.usb.UsbManager manager, android.hardware.usb.UsbDevice device, USBMonitor.UsbDeviceInfo _info)
manager
- device
- _info
-