Most visited

Recently visited

Added in API level 12

MtpDevice

public final class MtpDevice
extends Object

java.lang.Object
   ↳ android.mtp.MtpDevice


该类表示连接在USB主机总线上的MTP或PTP设备。 应用程序可以通过引用附件UsbDevice来实例化此类型的对象,然后使用此类中的方法获取有关设备和存储在其上的对象的信息,以及打开连接和传输数据。

Summary

Public constructors

MtpDevice(UsbDevice device)

MtpClient构造函数

Public methods

void close()

关闭与MtpDevice对象相关的所有资源。

boolean deleteObject(int objectHandle)

删除设备上的对象。

int getDeviceId()

返回USB设备的USB ID。

MtpDeviceInfo getDeviceInfo()

返回此设备的 MtpDeviceInfo

String getDeviceName()

返回USB设备的名称,这将返回相同的值 getDeviceName()为设备的 UsbDevice

byte[] getObject(int objectHandle, int objectSize)

以字节数组形式返回对象的数据。

int[] getObjectHandles(int storageId, int format, int objectHandle)

返回给定存储单元上所有对象的对象句柄列表,给定格式和父级。

MtpObjectInfo getObjectInfo(int objectHandle)

检索对象的 MtpObjectInfo

long getParent(int objectHandle)

检索设备上对象的父对象句柄。

long getPartialObject(int objectHandle, long offset, long size, byte[] buffer)

获取指定范围内的对象字节并将其写入数组。

long getPartialObject64(int objectHandle, long offset, long size, byte[] buffer)

获取指定范围内的对象字节并将其写入数组。

long getStorageId(int objectHandle)

检索包含设备上给定对象的存储单元的ID。

int[] getStorageIds()

返回此设备上所有存储单元的ID列表可以通过 getStorageInfo(int)访问有关每个存储单元的信息。

MtpStorageInfo getStorageInfo(int storageId)

检索存储单元的 MtpStorageInfo

byte[] getThumbnail(int objectHandle)

以字节数组的形式返回对象的缩略图数据。

boolean importFile(int objectHandle, String destPath)

将对象的数据复制到外部存储器中的文件。

boolean importFile(int objectHandle, ParcelFileDescriptor descriptor)

将对象的数据复制到文件描述符。

boolean open(UsbDeviceConnection connection)

打开MTP设备。

MtpEvent readEvent(CancellationSignal signal)

从设备读取事件。

boolean sendObject(int objectHandle, long size, ParcelFileDescriptor descriptor)

从文件描述符复制对象的数据。

MtpObjectInfo sendObjectInfo(MtpObjectInfo info)

上传新条目的对象元数据。

String toString()

返回对象的字符串表示形式。

Protected methods

void finalize()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。

Inherited methods

From class java.lang.Object

Public constructors

MtpDevice

Added in API level 12
MtpDevice (UsbDevice device)

MtpClient构造函数

Parameters
device UsbDevice: the UsbDevice for the MTP or PTP device

Public methods

close

Added in API level 12
void close ()

关闭与MtpDevice对象相关的所有资源。 在此之后,该对象不能使用,直到open(UsbDeviceConnection)再次被调用一个新的UsbDeviceConnection

deleteObject

Added in API level 12
boolean deleteObject (int objectHandle)

删除设备上的对象。 此调用可能会阻止,因为删除包含多个文件的目录在某些设备上可能需要很长时间。

Parameters
objectHandle int: handle of the object to delete
Returns
boolean true if the deletion succeeds

getDeviceId

Added in API level 12
int getDeviceId ()

返回USB设备的USB ID。 这将为设备UsbDevice返回与getDeviceId()相同的值

Returns
int the device ID

getDeviceInfo

Added in API level 12
MtpDeviceInfo getDeviceInfo ()

返回此设备的 MtpDeviceInfo

Returns
MtpDeviceInfo the device info

getDeviceName

Added in API level 12
String getDeviceName ()

返回USB设备的名称该设备的返回值与 getDeviceName()返回值相同 UsbDevice

Returns
String the device name

getObject

Added in API level 12
byte[] getObject (int objectHandle, 
                int objectSize)

以字节数组形式返回对象的数据。 根据数据大小和设备速度的不同,此调用可能会阻塞任意时间。

Parameters
objectHandle int: handle of the object to read
objectSize int: the size of the object (this should match getCompressedSize())
Returns
byte[] the object's data, or null if reading fails

getObjectHandles

Added in API level 12
int[] getObjectHandles (int storageId, 
                int format, 
                int objectHandle)

返回给定存储单元上所有对象的对象句柄列表,给定格式和父级。 有关每个对象的信息可以通过getObjectInfo(int)访问。

Parameters
storageId int: the storage unit to query
format int: the format of the object to return, or zero for all formats
objectHandle int: the parent object to query, -1 for the storage root, or zero for all objects
Returns
int[] the object handles

getObjectInfo

Added in API level 12
MtpObjectInfo getObjectInfo (int objectHandle)

检索对象的 MtpObjectInfo

Parameters
objectHandle int: the handle of the object
Returns
MtpObjectInfo the MtpObjectInfo

getParent

Added in API level 12
long getParent (int objectHandle)

检索设备上对象的父对象句柄。

Parameters
objectHandle int: handle of the object to query
Returns
long the parent's handle, or zero if it is in the root of the storage

getPartialObject

Added in API level 24
long getPartialObject (int objectHandle, 
                long offset, 
                long size, 
                byte[] buffer)

获取指定范围内的对象字节并将其写入数组。 根据数据大小和设备速度的不同,此调用可能会阻塞任意时间。

Parameters
objectHandle int: handle of the object to read
offset long: Start index of reading range. It must be a non-negative value at most 0xffffffff.
size long: Size of reading range. It must be a non-negative value at most Integer.MAX_VALUE or 0xffffffff. If 0xffffffff is specified, the method obtains the full bytes of object.
buffer byte: Array to write data.
Returns
long Size of bytes that are actually read.
Throws
IOException

getPartialObject64

Added in API level 24
long getPartialObject64 (int objectHandle, 
                long offset, 
                long size, 
                byte[] buffer)

获取指定范围内的对象字节并将其写入数组。 根据数据大小和设备速度的不同,此调用可能会阻塞任意时间。 这是Android支持的供应商扩展操作,它使我们能够传递无符号的64位偏移量。 通过使用getOperationsSupported()检查MTP设备是否支持该操作。

Parameters
objectHandle int: handle of the object to read
offset long: Start index of reading range. It must be a non-negative value.
size long: Size of reading range. It must be a non-negative value at most Integer.MAX_VALUE.
buffer byte: Array to write data.
Returns
long Size of bytes that are actually read.
Throws
IOException

也可以看看:

getStorageId

Added in API level 12
long getStorageId (int objectHandle)

检索包含设备上给定对象的存储单元的ID。

Parameters
objectHandle int: handle of the object to query
Returns
long the object's storage unit ID

getStorageIds

Added in API level 12
int[] getStorageIds ()

返回此设备上所有存储单元的ID列表可以通过 getStorageInfo(int)访问有关每个存储单元的信息。

Returns
int[] the list of storage IDs

getStorageInfo

Added in API level 12
MtpStorageInfo getStorageInfo (int storageId)

检索存储单元的 MtpStorageInfo

Parameters
storageId int: the ID of the storage unit
Returns
MtpStorageInfo the MtpStorageInfo

getThumbnail

Added in API level 12
byte[] getThumbnail (int objectHandle)

以字节数组的形式返回对象的缩略图数据。 缩略图数据的大小和格式可以通过getThumbCompressedSize()getThumbFormat()确定。 对于典型的设备,格式是JPEG。

Parameters
objectHandle int: handle of the object to read
Returns
byte[] the object's thumbnail, or null if reading fails

importFile

Added in API level 12
boolean importFile (int objectHandle, 
                String destPath)

将对象的数据复制到外部存储器中的文件。 根据数据大小和设备速度的不同,此调用可能会阻塞任意时间。

Parameters
objectHandle int: handle of the object to read
destPath String: path to destination for the file transfer. This path should be in the external storage as defined by getExternalStorageDirectory()
Returns
boolean true if the file transfer succeeds

importFile

Added in API level 24
boolean importFile (int objectHandle, 
                ParcelFileDescriptor descriptor)

将对象的数据复制到文件描述符。 根据数据大小和设备速度的不同,此调用可能会阻塞任意时间。 文件描述符在完成时未关闭,并且必须由调用者完成。

Parameters
objectHandle int: handle of the object to read
descriptor ParcelFileDescriptor: file descriptor to write the data to for the file transfer.
Returns
boolean true if the file transfer succeeds

open

Added in API level 12
boolean open (UsbDeviceConnection connection)

打开MTP设备。 一旦设备打开,它将获得UsbDeviceConnection所有权。 当您拨打close() ,连接将被关闭如果此方法失败,连接也将被关闭。

Parameters
connection UsbDeviceConnection: an open UsbDeviceConnection for the device
Returns
boolean true if the device was successfully opened.

readEvent

Added in API level 24
MtpEvent readEvent (CancellationSignal signal)

从设备读取事件。 它阻塞当前线程直到它发生事件。 如果它被信号取消,则抛出OperationCanceledException。

Parameters
signal CancellationSignal: signal for cancellation
Returns
MtpEvent obtained event
Throws
IOException

sendObject

Added in API level 24
boolean sendObject (int objectHandle, 
                long size, 
                ParcelFileDescriptor descriptor)

从文件描述符复制对象的数据。 根据数据大小和设备速度的不同,此调用可能会阻塞任意时间。 文件描述符在完成时未关闭,并且必须由调用者完成。

Parameters
objectHandle int: handle of the target file
size long: size of the file in bytes
descriptor ParcelFileDescriptor: file descriptor to read the data from.
Returns
boolean true if the file transfer succeeds

sendObjectInfo

Added in API level 24
MtpObjectInfo sendObjectInfo (MtpObjectInfo info)

上传新条目的对象元数据。 MtpObjectInfo可以与创建MtpObjectInfo.Builder类。 返回的MtpObjectInfo已填入新的对象句柄字段。

Parameters
info MtpObjectInfo: metadata of the entry
Returns
MtpObjectInfo object info of the created entry or null if the operation failed.

toString

Added in API level 12
String toString ()

返回对象的字符串表示形式。 通常, toString方法会返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。

ObjecttoString方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @ ”和对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Returns
String a string representation of the object.

Protected methods

finalize

Added in API level 12
void finalize ()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 子类会覆盖finalize方法来处置系统资源或执行其他清理。

的常规协定finalize是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 finalize方法可以采取任何行动,包括使该对象再次可用于其他线程; 然而, finalize的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。

Objectfinalize方法Object执行特殊操作; 它只是正常返回。 Object子类可能会覆盖此定义。

Java编程语言不保证哪个线程将为任何给定对象调用finalize方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。

在针对某个对象调用 finalize方法后,将不会采取进一步的操作,直到Java虚拟机再次确定不再有任何途径可以通过任何尚未死亡的线程访问此对象,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。

对于任何给定对象,Java虚拟机永远不会多次调用 finalize方法。

finalize方法抛出的任何异常 finalize导致终止此对象的终止,但会被忽略。

Throws
Throwable

Hooray!