diff options
author | 2011-02-09 21:48:53 -0500 | |
---|---|---|
committer | 2011-02-11 09:09:11 -0500 | |
commit | 540380fb0a45b12af3970f9ea1ed041607451f46 (patch) | |
tree | 42f70f979a9a6de811f6760df2686429a09d4efa | |
parent | bc20c93863aefc6bf9a9338c4f1cb68e529826d3 (diff) |
Add MTP/PTP host support to the public API
Needed for unbundling the Gallery app
Change-Id: I57e6b76ee5c9e57cb8c055329ac13251879baafd
Signed-off-by: Mike Lockwood <lockwood@android.com>
-rw-r--r-- | api/current.xml | 1513 | ||||
-rw-r--r-- | media/java/android/mtp/MtpClient.java | 154 | ||||
-rw-r--r-- | media/java/android/mtp/MtpConstants.java | 370 | ||||
-rw-r--r-- | media/java/android/mtp/MtpDevice.java | 104 | ||||
-rw-r--r-- | media/java/android/mtp/MtpDeviceInfo.java | 2 | ||||
-rw-r--r-- | media/java/android/mtp/MtpObjectInfo.java | 2 | ||||
-rw-r--r-- | media/java/android/mtp/MtpStorageInfo.java | 2 |
7 files changed, 2009 insertions, 138 deletions
diff --git a/api/current.xml b/api/current.xml index a8d1d067e725..1cdf0e93dff6 100644 --- a/api/current.xml +++ b/api/current.xml @@ -112187,6 +112187,1517 @@ </method> </interface> </package> +<package name="android.mtp" +> +<class name="MtpClient" + extends="java.lang.Object" + abstract="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<constructor name="MtpClient" + type="android.mtp.MtpClient" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="context" type="android.content.Context"> +</parameter> +</constructor> +<method name="addListener" + return="void" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="listener" type="android.mtp.MtpClient.Listener"> +</parameter> +</method> +<method name="close" + return="void" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="deleteObject" + return="boolean" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="deviceName" type="java.lang.String"> +</parameter> +<parameter name="objectHandle" type="int"> +</parameter> +</method> +<method name="getDevice" + return="android.mtp.MtpDevice" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="deviceName" type="java.lang.String"> +</parameter> +</method> +<method name="getDevice" + return="android.mtp.MtpDevice" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="id" type="int"> +</parameter> +</method> +<method name="getDeviceList" + return="java.util.List<android.mtp.MtpDevice>" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getObject" + return="byte[]" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="deviceName" type="java.lang.String"> +</parameter> +<parameter name="objectHandle" type="int"> +</parameter> +<parameter name="objectSize" type="int"> +</parameter> +</method> +<method name="getObjectInfo" + return="android.mtp.MtpObjectInfo" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="deviceName" type="java.lang.String"> +</parameter> +<parameter name="objectHandle" type="int"> +</parameter> +</method> +<method name="getObjectList" + return="java.util.List<android.mtp.MtpObjectInfo>" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="deviceName" type="java.lang.String"> +</parameter> +<parameter name="storageId" type="int"> +</parameter> +<parameter name="objectHandle" type="int"> +</parameter> +</method> +<method name="getStorageList" + return="java.util.List<android.mtp.MtpStorageInfo>" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="deviceName" type="java.lang.String"> +</parameter> +</method> +<method name="getThumbnail" + return="byte[]" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="deviceName" type="java.lang.String"> +</parameter> +<parameter name="objectHandle" type="int"> +</parameter> +</method> +<method name="importFile" + return="boolean" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="deviceName" type="java.lang.String"> +</parameter> +<parameter name="objectHandle" type="int"> +</parameter> +<parameter name="destPath" type="java.lang.String"> +</parameter> +</method> +<method name="isCamera" + return="boolean" + abstract="false" + native="false" + synchronized="false" + static="true" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="device" type="android.hardware.UsbDevice"> +</parameter> +</method> +<method name="removeListener" + return="void" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="listener" type="android.mtp.MtpClient.Listener"> +</parameter> +</method> +</class> +<interface name="MtpClient.Listener" + abstract="true" + static="true" + final="false" + deprecated="not deprecated" + visibility="public" +> +<method name="deviceAdded" + return="void" + abstract="true" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="device" type="android.mtp.MtpDevice"> +</parameter> +</method> +<method name="deviceRemoved" + return="void" + abstract="true" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="device" type="android.mtp.MtpDevice"> +</parameter> +</method> +</interface> +<class name="MtpConstants" + extends="java.lang.Object" + abstract="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +<constructor name="MtpConstants" + type="android.mtp.MtpConstants" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</constructor> +<method name="isAbstractObject" + return="boolean" + abstract="false" + native="false" + synchronized="false" + static="true" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="format" type="int"> +</parameter> +</method> +<field name="ASSOCIATION_TYPE_GENERIC_FOLDER" + type="int" + transient="false" + volatile="false" + value="1" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_3GP_CONTAINER" + type="int" + transient="false" + volatile="false" + value="47492" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_AAC" + type="int" + transient="false" + volatile="false" + value="47363" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_ABSTRACT_AUDIO_ALBUM" + type="int" + transient="false" + volatile="false" + value="47619" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_ABSTRACT_AUDIO_PLAYLIST" + type="int" + transient="false" + volatile="false" + value="47625" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_ABSTRACT_AV_PLAYLIST" + type="int" + transient="false" + volatile="false" + value="47621" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_ABSTRACT_DOCUMENT" + type="int" + transient="false" + volatile="false" + value="47745" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_ABSTRACT_IMAGE_ALBUM" + type="int" + transient="false" + volatile="false" + value="47618" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_ABSTRACT_MEDIACAST" + type="int" + transient="false" + volatile="false" + value="47627" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_ABSTRACT_MULTIMEDIA_ALBUM" + type="int" + transient="false" + volatile="false" + value="47617" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_ABSTRACT_VIDEO_ALBUM" + type="int" + transient="false" + volatile="false" + value="47620" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_ABSTRACT_VIDEO_PLAYLIST" + type="int" + transient="false" + volatile="false" + value="47626" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_AIFF" + type="int" + transient="false" + volatile="false" + value="12295" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_ASF" + type="int" + transient="false" + volatile="false" + value="12300" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_ASSOCIATION" + type="int" + transient="false" + volatile="false" + value="12289" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_ASX_PLAYLIST" + type="int" + transient="false" + volatile="false" + value="47635" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_AUDIBLE" + type="int" + transient="false" + volatile="false" + value="47364" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_AVI" + type="int" + transient="false" + volatile="false" + value="12298" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_BMP" + type="int" + transient="false" + volatile="false" + value="14340" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_DPOF" + type="int" + transient="false" + volatile="false" + value="12294" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_EXECUTABLE" + type="int" + transient="false" + volatile="false" + value="12291" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_EXIF_JPEG" + type="int" + transient="false" + volatile="false" + value="14337" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_FLAC" + type="int" + transient="false" + volatile="false" + value="47366" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_GIF" + type="int" + transient="false" + volatile="false" + value="14343" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_HTML" + type="int" + transient="false" + volatile="false" + value="12293" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_JFIF" + type="int" + transient="false" + volatile="false" + value="14344" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_JP2" + type="int" + transient="false" + volatile="false" + value="14351" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_JPX" + type="int" + transient="false" + volatile="false" + value="14352" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_M3U_PLAYLIST" + type="int" + transient="false" + volatile="false" + value="47633" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_MP2" + type="int" + transient="false" + volatile="false" + value="47491" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_MP3" + type="int" + transient="false" + volatile="false" + value="12297" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_MP4_CONTAINER" + type="int" + transient="false" + volatile="false" + value="47490" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_MPEG" + type="int" + transient="false" + volatile="false" + value="12299" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_MPL_PLAYLIST" + type="int" + transient="false" + volatile="false" + value="47634" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_MS_EXCEL_SPREADSHEET" + type="int" + transient="false" + volatile="false" + value="47749" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_MS_POWERPOINT_PRESENTATION" + type="int" + transient="false" + volatile="false" + value="47750" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_MS_WORD_DOCUMENT" + type="int" + transient="false" + volatile="false" + value="47747" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_OGG" + type="int" + transient="false" + volatile="false" + value="47362" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_PICT" + type="int" + transient="false" + volatile="false" + value="14346" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_PLS_PLAYLIST" + type="int" + transient="false" + volatile="false" + value="47636" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_PNG" + type="int" + transient="false" + volatile="false" + value="14347" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_SCRIPT" + type="int" + transient="false" + volatile="false" + value="12290" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_TEXT" + type="int" + transient="false" + volatile="false" + value="12292" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_TIFF" + type="int" + transient="false" + volatile="false" + value="14349" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_TIFF_EP" + type="int" + transient="false" + volatile="false" + value="14338" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_UNDEFINED" + type="int" + transient="false" + volatile="false" + value="12288" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_UNDEFINED_AUDIO" + type="int" + transient="false" + volatile="false" + value="47360" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_UNDEFINED_COLLECTION" + type="int" + transient="false" + volatile="false" + value="47616" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_UNDEFINED_DOCUMENT" + type="int" + transient="false" + volatile="false" + value="47744" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_UNDEFINED_FIRMWARE" + type="int" + transient="false" + volatile="false" + value="47106" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_UNDEFINED_VIDEO" + type="int" + transient="false" + volatile="false" + value="47488" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_WAV" + type="int" + transient="false" + volatile="false" + value="12296" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_WINDOWS_IMAGE_FORMAT" + type="int" + transient="false" + volatile="false" + value="47233" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_WMA" + type="int" + transient="false" + volatile="false" + value="47361" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_WMV" + type="int" + transient="false" + volatile="false" + value="47489" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_WPL_PLAYLIST" + type="int" + transient="false" + volatile="false" + value="47632" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="FORMAT_XML_DOCUMENT" + type="int" + transient="false" + volatile="false" + value="47746" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="PROTECTION_STATUS_NONE" + type="int" + transient="false" + volatile="false" + value="0" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="PROTECTION_STATUS_NON_TRANSFERABLE_DATA" + type="int" + transient="false" + volatile="false" + value="32771" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="PROTECTION_STATUS_READ_ONLY" + type="int" + transient="false" + volatile="false" + value="32769" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="PROTECTION_STATUS_READ_ONLY_DATA" + type="int" + transient="false" + volatile="false" + value="32770" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +</class> +<class name="MtpDevice" + extends="java.lang.Object" + abstract="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +<constructor name="MtpDevice" + type="android.mtp.MtpDevice" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="device" type="android.hardware.UsbDevice"> +</parameter> +</constructor> +<method name="close" + return="void" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="deleteObject" + return="boolean" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="objectHandle" type="int"> +</parameter> +</method> +<method name="getDeviceId" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getDeviceInfo" + return="android.mtp.MtpDeviceInfo" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getDeviceName" + return="java.lang.String" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getObject" + return="byte[]" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="objectHandle" type="int"> +</parameter> +<parameter name="objectSize" type="int"> +</parameter> +</method> +<method name="getObjectHandles" + return="int[]" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="storageId" type="int"> +</parameter> +<parameter name="format" type="int"> +</parameter> +<parameter name="objectHandle" type="int"> +</parameter> +</method> +<method name="getObjectInfo" + return="android.mtp.MtpObjectInfo" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="objectHandle" type="int"> +</parameter> +</method> +<method name="getParent" + return="long" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="objectHandle" type="int"> +</parameter> +</method> +<method name="getStorageID" + return="long" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="objectHandle" type="int"> +</parameter> +</method> +<method name="getStorageIds" + return="int[]" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getStorageInfo" + return="android.mtp.MtpStorageInfo" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="storageId" type="int"> +</parameter> +</method> +<method name="getThumbnail" + return="byte[]" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="objectHandle" type="int"> +</parameter> +</method> +<method name="importFile" + return="boolean" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="objectHandle" type="int"> +</parameter> +<parameter name="destPath" type="java.lang.String"> +</parameter> +</method> +<method name="open" + return="boolean" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="manager" type="android.hardware.UsbManager"> +</parameter> +</method> +</class> +<class name="MtpDeviceInfo" + extends="java.lang.Object" + abstract="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<method name="getManufacturer" + return="java.lang.String" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getModel" + return="java.lang.String" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getSerialNumber" + return="java.lang.String" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getVersion" + return="java.lang.String" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +</class> +<class name="MtpObjectInfo" + extends="java.lang.Object" + abstract="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +<method name="getAssociationDesc" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getAssociationType" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getCompressedSize" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getDateCreated" + return="long" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getDateModified" + return="long" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getFormat" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getImagePixDepth" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getImagePixHeight" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getImagePixWidth" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getKeywords" + return="java.lang.String" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getName" + return="java.lang.String" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getObjectHandle" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getParent" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getProtectionStatus" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getSequenceNumber" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getStorageId" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getThumbCompressedSize" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getThumbFormat" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getThumbPixHeight" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getThumbPixWidth" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +</class> +<class name="MtpStorageInfo" + extends="java.lang.Object" + abstract="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +<method name="getDescription" + return="java.lang.String" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getFreeSpace" + return="long" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getMaxCapacity" + return="long" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getStorageId" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +<method name="getVolumeIdentifier" + return="java.lang.String" + abstract="false" + native="false" + synchronized="false" + static="false" + final="true" + deprecated="not deprecated" + visibility="public" +> +</method> +</class> +</package> <package name="android.net" > <class name="ConnectivityManager" @@ -264081,7 +265592,7 @@ deprecated="not deprecated" visibility="public" > -<parameter name="arg0" type="T"> +<parameter name="t" type="T"> </parameter> </method> </interface> diff --git a/media/java/android/mtp/MtpClient.java b/media/java/android/mtp/MtpClient.java index 19ee92a650bd..568ac9400028 100644 --- a/media/java/android/mtp/MtpClient.java +++ b/media/java/android/mtp/MtpClient.java @@ -32,10 +32,9 @@ import java.util.ArrayList; import java.util.List; /** - * This class helps an application manage a list of connected MTP devices. + * This class helps an application manage a list of connected MTP or PTP devices. * It listens for MTP devices being attached and removed from the USB host bus * and notifies the application when the MTP device list changes. - * {@hide} */ public class MtpClient { @@ -76,12 +75,34 @@ public class MtpClient { } }; + /** + * An interface for being notified when MTP or PTP devices are attached + * or removed. In the current implementation, only PTP devices are supported. + */ public interface Listener { + /** + * Called when a new device has been added + * + * @param device the new device that was added + */ public void deviceAdded(MtpDevice device); + + /** + * Called when a new device has been removed + * + * @param device the device that was removed + */ public void deviceRemoved(MtpDevice device); } - static public boolean isCamera(UsbDevice device) { + /** + * Tests to see if a {@link android.hardware.UsbDevice} + * supports the PTP protocol (typically used by digital cameras) + * + * @param device the device to test + * @return true if the device is a PTP device. + */ + static public boolean isCamera(UsbDevice device) { int count = device.getInterfaceCount(); for (int i = 0; i < count; i++) { UsbInterface intf = device.getInterface(i); @@ -94,16 +115,11 @@ public class MtpClient { return false; } - private MtpDevice openDevice(UsbDevice usbDevice) { - if (isCamera(usbDevice)) { - MtpDevice mtpDevice = new MtpDevice(usbDevice); - if (mtpDevice.open(mUsbManager)) { - return mtpDevice; - } - } - return null; - } - + /** + * MtpClient constructor + * + * @param context the {@link android.content.Context} to use for the MtpClient + */ public MtpClient(Context context) { mContext = context; mUsbManager = (UsbManager)context.getSystemService(Context.USB_SERVICE); @@ -124,6 +140,26 @@ public class MtpClient { } } + /** + * Opens the {@link android.hardware.UsbDevice} for an MTP or PTP + * device and return an {@link android.mtp.MtpDevice} for it. + * + * @param device the device to open + * @return an MtpDevice for the device. + */ + private MtpDevice openDevice(UsbDevice usbDevice) { + if (isCamera(usbDevice)) { + MtpDevice mtpDevice = new MtpDevice(usbDevice); + if (mtpDevice.open(mUsbManager)) { + return mtpDevice; + } + } + return null; + } + + /** + * Closes all resources related to the MtpClient object + */ public void close() { mContext.unregisterReceiver(mUsbReceiver); } @@ -137,6 +173,12 @@ public class MtpClient { } } + /** + * Registers a {@link android.mtp.MtpClient.Listener} interface to receive + * notifications when MTP or PTP devices are added or removed. + * + * @param listener the listener to register + */ public void addListener(Listener listener) { synchronized (mDeviceList) { if (!mListeners.contains(listener)) { @@ -145,18 +187,37 @@ public class MtpClient { } } + /** + * Unregisters a {@link android.mtp.MtpClient.Listener} interface. + * + * @param listener the listener to unregister + */ public void removeListener(Listener listener) { synchronized (mDeviceList) { mListeners.remove(listener); } } + /** + * Retrieves an {@link android.mtp.MtpDevice} object for the USB device + * with the given name. + * + * @param deviceName the name of the USB device + * @return the MtpDevice, or null if it does not exist + */ public MtpDevice getDevice(String deviceName) { synchronized (mDeviceList) { return getDeviceLocked(deviceName); } } + /** + * Retrieves an {@link android.mtp.MtpDevice} object for the USB device + * with the given ID. + * + * @param id the ID of the USB device + * @return the MtpDevice, or null if it does not exist + */ public MtpDevice getDevice(int id) { synchronized (mDeviceList) { return getDeviceLocked(UsbDevice.getDeviceName(id)); @@ -172,12 +233,24 @@ public class MtpClient { return null; } + /** + * Retrieves a list of all currently connected {@link android.mtp.MtpDevice}. + * + * @return the list of MtpDevices + */ public List<MtpDevice> getDeviceList() { synchronized (mDeviceList) { return new ArrayList<MtpDevice>(mDeviceList); } } + /** + * Retrieves a list of all {@link android.mtp.MtpStorageInfo} + * for the MTP or PTP device with the given USB device name + * + * @param deviceName the name of the USB device + * @return the list of MtpStorageInfo + */ public List<MtpStorageInfo> getStorageList(String deviceName) { MtpDevice device = getDevice(deviceName); if (device == null) { @@ -201,6 +274,15 @@ public class MtpClient { return storageList; } + /** + * Retrieves the {@link android.mtp.MtpObjectInfo} for an object on + * the MTP or PTP device with the given USB device name with the given + * object handle + * + * @param deviceName the name of the USB device + * @param objectHandle handle of the object to query + * @return the MtpObjectInfo + */ public MtpObjectInfo getObjectInfo(String deviceName, int objectHandle) { MtpDevice device = getDevice(deviceName); if (device == null) { @@ -209,6 +291,13 @@ public class MtpClient { return device.getObjectInfo(objectHandle); } + /** + * Deletes an object on the MTP or PTP device with the given USB device name. + * + * @param deviceName the name of the USB device + * @param objectHandle handle of the object to delete + * @return true if the deletion succeeds + */ public boolean deleteObject(String deviceName, int objectHandle) { MtpDevice device = getDevice(deviceName); if (device == null) { @@ -217,6 +306,19 @@ public class MtpClient { return device.deleteObject(objectHandle); } + /** + * Retrieves a list of {@link android.mtp.MtpObjectInfo} for all objects + * on the MTP or PTP device with the given USB device name and given storage ID + * and/or object handle. + * If the object handle is zero, then all objects in the root of the storage unit + * will be returned. Otherwise, all immediate children of the object will be returned. + * If the storage ID is also zero, then all objects on all storage units will be returned. + * + * @param deviceName the name of the USB device + * @param storageId the ID of the storage unit to query, or zero for all + * @param objectHandle the handle of the parent object to query, or zero for the storage root + * @return the list of MtpObjectInfo + */ public List<MtpObjectInfo> getObjectList(String deviceName, int storageId, int objectHandle) { MtpDevice device = getDevice(deviceName); if (device == null) { @@ -244,6 +346,15 @@ public class MtpClient { return objectList; } + /** + * Returns the data for an object as a byte array. + * + * @param deviceName the name of the USB device containing the object + * @param objectHandle handle of the object to read + * @param objectSize the size of the object (this should match + * {@link android.mtp.MtpObjectInfo#getCompressedSize} + * @return the object's data, or null if reading fails + */ public byte[] getObject(String deviceName, int objectHandle, int objectSize) { MtpDevice device = getDevice(deviceName); if (device == null) { @@ -252,6 +363,13 @@ public class MtpClient { return device.getObject(objectHandle, objectSize); } + /** + * Returns the thumbnail data for an object as a byte array. + * + * @param deviceName the name of the USB device containing the object + * @param objectHandle handle of the object to read + * @return the object's thumbnail, or null if reading fails + */ public byte[] getThumbnail(String deviceName, int objectHandle) { MtpDevice device = getDevice(deviceName); if (device == null) { @@ -260,6 +378,16 @@ public class MtpClient { return device.getThumbnail(objectHandle); } + /** + * Copies the data for an object to a file in external storage. + * + * @param deviceName the name of the USB device containing the object + * @param objectHandle handle of the object to read + * @param destPath path to destination for the file transfer. + * This path should be in the external storage as defined by + * {@link android.os.Environment#getExternalStorageDirectory} + * @return true if the file transfer succeeds + */ public boolean importFile(String deviceName, int objectHandle, String destPath) { MtpDevice device = getDevice(deviceName); if (device == null) { diff --git a/media/java/android/mtp/MtpConstants.java b/media/java/android/mtp/MtpConstants.java index 8fa47ee2db43..ad67bb916268 100644 --- a/media/java/android/mtp/MtpConstants.java +++ b/media/java/android/mtp/MtpConstants.java @@ -17,151 +17,265 @@ package android.mtp; /** - * {@hide} + * A class containing constants in the MTP and PTP specifications. */ public final class MtpConstants { -// MTP Data Types + // MTP Data Types + /** @hide */ public static final int TYPE_UNDEFINED = 0x0000; + /** @hide */ public static final int TYPE_INT8 = 0x0001; + /** @hide */ public static final int TYPE_UINT8 = 0x0002; + /** @hide */ public static final int TYPE_INT16 = 0x0003; + /** @hide */ public static final int TYPE_UINT16 = 0x0004; + /** @hide */ public static final int TYPE_INT32 = 0x0005; + /** @hide */ public static final int TYPE_UINT32 = 0x0006; + /** @hide */ public static final int TYPE_INT64 = 0x0007; + /** @hide */ public static final int TYPE_UINT64 = 0x0008; + /** @hide */ public static final int TYPE_INT128 = 0x0009; + /** @hide */ public static final int TYPE_UINT128 = 0x000A; + /** @hide */ public static final int TYPE_AINT8 = 0x4001; + /** @hide */ public static final int TYPE_AUINT8 = 0x4002; + /** @hide */ public static final int TYPE_AINT16 = 0x4003; + /** @hide */ public static final int TYPE_AUINT16 = 0x4004; + /** @hide */ public static final int TYPE_AINT32 = 0x4005; + /** @hide */ public static final int TYPE_AUINT32 = 0x4006; + /** @hide */ public static final int TYPE_AINT64 = 0x4007; + /** @hide */ public static final int TYPE_AUINT64 = 0x4008; + /** @hide */ public static final int TYPE_AINT128 = 0x4009; + /** @hide */ public static final int TYPE_AUINT128 = 0x400A; + /** @hide */ public static final int TYPE_STR = 0xFFFF; -// MTP Response Codes + // MTP Response Codes + /** @hide */ public static final int RESPONSE_UNDEFINED = 0x2000; + /** @hide */ public static final int RESPONSE_OK = 0x2001; + /** @hide */ public static final int RESPONSE_GENERAL_ERROR = 0x2002; + /** @hide */ public static final int RESPONSE_SESSION_NOT_OPEN = 0x2003; + /** @hide */ public static final int RESPONSE_INVALID_TRANSACTION_ID = 0x2004; + /** @hide */ public static final int RESPONSE_OPERATION_NOT_SUPPORTED = 0x2005; + /** @hide */ public static final int RESPONSE_PARAMETER_NOT_SUPPORTED = 0x2006; + /** @hide */ public static final int RESPONSE_INCOMPLETE_TRANSFER = 0x2007; + /** @hide */ public static final int RESPONSE_INVALID_STORAGE_ID = 0x2008; + /** @hide */ public static final int RESPONSE_INVALID_OBJECT_HANDLE = 0x2009; + /** @hide */ public static final int RESPONSE_DEVICE_PROP_NOT_SUPPORTED = 0x200A; + /** @hide */ public static final int RESPONSE_INVALID_OBJECT_FORMAT_CODE = 0x200B; + /** @hide */ public static final int RESPONSE_STORAGE_FULL = 0x200C; + /** @hide */ public static final int RESPONSE_OBJECT_WRITE_PROTECTED = 0x200D; + /** @hide */ public static final int RESPONSE_STORE_READ_ONLY = 0x200E; + /** @hide */ public static final int RESPONSE_ACCESS_DENIED = 0x200F; + /** @hide */ public static final int RESPONSE_NO_THUMBNAIL_PRESENT = 0x2010; + /** @hide */ public static final int RESPONSE_SELF_TEST_FAILED = 0x2011; + /** @hide */ public static final int RESPONSE_PARTIAL_DELETION = 0x2012; + /** @hide */ public static final int RESPONSE_STORE_NOT_AVAILABLE = 0x2013; + /** @hide */ public static final int RESPONSE_SPECIFICATION_BY_FORMAT_UNSUPPORTED = 0x2014; + /** @hide */ public static final int RESPONSE_NO_VALID_OBJECT_INFO = 0x2015; + /** @hide */ public static final int RESPONSE_INVALID_CODE_FORMAT = 0x2016; + /** @hide */ public static final int RESPONSE_UNKNOWN_VENDOR_CODE = 0x2017; + /** @hide */ public static final int RESPONSE_CAPTURE_ALREADY_TERMINATED = 0x2018; + /** @hide */ public static final int RESPONSE_DEVICE_BUSY = 0x2019; + /** @hide */ public static final int RESPONSE_INVALID_PARENT_OBJECT = 0x201A; + /** @hide */ public static final int RESPONSE_INVALID_DEVICE_PROP_FORMAT = 0x201B; + /** @hide */ public static final int RESPONSE_INVALID_DEVICE_PROP_VALUE = 0x201C; + /** @hide */ public static final int RESPONSE_INVALID_PARAMETER = 0x201D; + /** @hide */ public static final int RESPONSE_SESSION_ALREADY_OPEN = 0x201E; + /** @hide */ public static final int RESPONSE_TRANSACTION_CANCELLED = 0x201F; + /** @hide */ public static final int RESPONSE_SPECIFICATION_OF_DESTINATION_UNSUPPORTED = 0x2020; + /** @hide */ public static final int RESPONSE_INVALID_OBJECT_PROP_CODE = 0xA801; + /** @hide */ public static final int RESPONSE_INVALID_OBJECT_PROP_FORMAT = 0xA802; + /** @hide */ public static final int RESPONSE_INVALID_OBJECT_PROP_VALUE = 0xA803; + /** @hide */ public static final int RESPONSE_INVALID_OBJECT_REFERENCE = 0xA804; + /** @hide */ public static final int RESPONSE_GROUP_NOT_SUPPORTED = 0xA805; + /** @hide */ public static final int RESPONSE_INVALID_DATASET = 0xA806; + /** @hide */ public static final int RESPONSE_SPECIFICATION_BY_GROUP_UNSUPPORTED = 0xA807; + /** @hide */ public static final int RESPONSE_SPECIFICATION_BY_DEPTH_UNSUPPORTED = 0xA808; + /** @hide */ public static final int RESPONSE_OBJECT_TOO_LARGE = 0xA809; + /** @hide */ public static final int RESPONSE_OBJECT_PROP_NOT_SUPPORTED = 0xA80A; // MTP format codes + /** Undefined format code */ public static final int FORMAT_UNDEFINED = 0x3000; + /** Format code for associations (folders and directories) */ public static final int FORMAT_ASSOCIATION = 0x3001; + /** Format code for script files */ public static final int FORMAT_SCRIPT = 0x3002; + /** Format code for executable files */ public static final int FORMAT_EXECUTABLE = 0x3003; + /** Format code for text files */ public static final int FORMAT_TEXT = 0x3004; + /** Format code for HTML files */ public static final int FORMAT_HTML = 0x3005; + /** Format code for DPOF files */ public static final int FORMAT_DPOF = 0x3006; + /** Format code for AIFF audio files */ public static final int FORMAT_AIFF = 0x3007; + /** Format code for WAV audio files */ public static final int FORMAT_WAV = 0x3008; + /** Format code for MP3 audio files */ public static final int FORMAT_MP3 = 0x3009; + /** Format code for AVI video files */ public static final int FORMAT_AVI = 0x300A; + /** Format code for MPEG video files */ public static final int FORMAT_MPEG = 0x300B; + /** Format code for ASF files */ public static final int FORMAT_ASF = 0x300C; - public static final int FORMAT_DEFINED = 0x3800; + /** Format code for JPEG image files */ public static final int FORMAT_EXIF_JPEG = 0x3801; + /** Format code for TIFF EP image files */ public static final int FORMAT_TIFF_EP = 0x3802; - public static final int FORMAT_FLASHPIX = 0x3803; + /** Format code for BMP image files */ public static final int FORMAT_BMP = 0x3804; - public static final int FORMAT_CIFF = 0x3805; + /** Format code for GIF image files */ public static final int FORMAT_GIF = 0x3807; + /** Format code for JFIF image files */ public static final int FORMAT_JFIF = 0x3808; - public static final int FORMAT_CD = 0x3809; + /** Format code for PICT image files */ public static final int FORMAT_PICT = 0x380A; + /** Format code for PNG image files */ public static final int FORMAT_PNG = 0x380B; + /** Format code for TIFF image files */ public static final int FORMAT_TIFF = 0x380D; - public static final int FORMAT_TIFF_IT = 0x380E; + /** Format code for JP2 files */ public static final int FORMAT_JP2 = 0x380F; + /** Format code for JPX files */ public static final int FORMAT_JPX = 0x3810; + /** Format code for firmware files */ public static final int FORMAT_UNDEFINED_FIRMWARE = 0xB802; + /** Format code for Windows image files */ public static final int FORMAT_WINDOWS_IMAGE_FORMAT = 0xB881; + /** Format code for undefined audio files files */ public static final int FORMAT_UNDEFINED_AUDIO = 0xB900; + /** Format code for WMA audio files */ public static final int FORMAT_WMA = 0xB901; + /** Format code for OGG audio files */ public static final int FORMAT_OGG = 0xB902; + /** Format code for AAC audio files */ public static final int FORMAT_AAC = 0xB903; + /** Format code for Audible audio files */ public static final int FORMAT_AUDIBLE = 0xB904; + /** Format code for FLAC audio files */ public static final int FORMAT_FLAC = 0xB906; + /** Format code for undefined video files */ public static final int FORMAT_UNDEFINED_VIDEO = 0xB980; + /** Format code for WMV video files */ public static final int FORMAT_WMV = 0xB981; + /** Format code for MP4 files */ public static final int FORMAT_MP4_CONTAINER = 0xB982; + /** Format code for MP2 files */ public static final int FORMAT_MP2 = 0xB983; + /** Format code for 3GP files */ public static final int FORMAT_3GP_CONTAINER = 0xB984; + /** Format code for undefined collections */ public static final int FORMAT_UNDEFINED_COLLECTION = 0xBA00; + /** Format code for multimedia albums */ public static final int FORMAT_ABSTRACT_MULTIMEDIA_ALBUM = 0xBA01; + /** Format code for image albums */ public static final int FORMAT_ABSTRACT_IMAGE_ALBUM = 0xBA02; + /** Format code for audio albums */ public static final int FORMAT_ABSTRACT_AUDIO_ALBUM = 0xBA03; + /** Format code for video albums */ public static final int FORMAT_ABSTRACT_VIDEO_ALBUM = 0xBA04; + /** Format code for abstract AV playlists */ public static final int FORMAT_ABSTRACT_AV_PLAYLIST = 0xBA05; - public static final int FORMAT_ABSTRACT_CONTACT_GROUP = 0xBA06; - public static final int FORMAT_ABSTRACT_MESSAGE_FOLDER = 0xBA07; - public static final int FORMAT_ABSTRACT_CHAPTERED_PRODUCTION = 0xBA08; + /** Format code for abstract audio playlists */ public static final int FORMAT_ABSTRACT_AUDIO_PLAYLIST = 0xBA09; + /** Format code for abstract video playlists */ public static final int FORMAT_ABSTRACT_VIDEO_PLAYLIST = 0xBA0A; + /** Format code for abstract mediacasts */ public static final int FORMAT_ABSTRACT_MEDIACAST = 0xBA0B; + /** Format code for WPL playlist files */ public static final int FORMAT_WPL_PLAYLIST = 0xBA10; + /** Format code for M3u playlist files */ public static final int FORMAT_M3U_PLAYLIST = 0xBA11; + /** Format code for MPL playlist files */ public static final int FORMAT_MPL_PLAYLIST = 0xBA12; + /** Format code for ASX playlist files */ public static final int FORMAT_ASX_PLAYLIST = 0xBA13; + /** Format code for PLS playlist files */ public static final int FORMAT_PLS_PLAYLIST = 0xBA14; + /** Format code for undefined document files */ public static final int FORMAT_UNDEFINED_DOCUMENT = 0xBA80; + /** Format code for abstract documents */ public static final int FORMAT_ABSTRACT_DOCUMENT = 0xBA81; + /** Format code for XML documents */ public static final int FORMAT_XML_DOCUMENT = 0xBA82; + /** Format code for MS Word documents */ public static final int FORMAT_MS_WORD_DOCUMENT = 0xBA83; - public static final int FORMAT_MHT_COMPILED_HTML_DOCUMENT = 0xBA84; + /** Format code for MS Excel spreadsheets */ public static final int FORMAT_MS_EXCEL_SPREADSHEET = 0xBA85; + /** Format code for MS PowerPoint presentatiosn */ public static final int FORMAT_MS_POWERPOINT_PRESENTATION = 0xBA86; - public static final int FORMAT_UNDEFINED_MESSAGE = 0xBB00; - public static final int FORMAT_ABSTRACT_MESSSAGE = 0xBB01; - public static final int FORMAT_UNDEFINED_CONTACT = 0xBB80; - public static final int FORMAT_ABSTRACT_CONTACT = 0xBB81; - public static final int FORMAT_VCARD_2 = 0xBB82; + /** + * Returns true if the object is abstract (that is, it has no representation + * in the underlying file system. + * + * @param format the format of the object + * @return true if the object is abstract + */ public static boolean isAbstractObject(int format) { switch (format) { case FORMAT_ABSTRACT_MULTIMEDIA_ALBUM: @@ -169,15 +283,10 @@ public final class MtpConstants { case FORMAT_ABSTRACT_AUDIO_ALBUM: case FORMAT_ABSTRACT_VIDEO_ALBUM: case FORMAT_ABSTRACT_AV_PLAYLIST: - case FORMAT_ABSTRACT_CONTACT_GROUP: - case FORMAT_ABSTRACT_MESSAGE_FOLDER: - case FORMAT_ABSTRACT_CHAPTERED_PRODUCTION: case FORMAT_ABSTRACT_AUDIO_PLAYLIST: case FORMAT_ABSTRACT_VIDEO_PLAYLIST: case FORMAT_ABSTRACT_MEDIACAST: case FORMAT_ABSTRACT_DOCUMENT: - case FORMAT_ABSTRACT_MESSSAGE: - case FORMAT_ABSTRACT_CONTACT: return true; default: return false; @@ -185,223 +294,259 @@ public final class MtpConstants { } // MTP object properties + /** @hide */ public static final int PROPERTY_STORAGE_ID = 0xDC01; + /** @hide */ public static final int PROPERTY_OBJECT_FORMAT = 0xDC02; + /** @hide */ public static final int PROPERTY_PROTECTION_STATUS = 0xDC03; + /** @hide */ public static final int PROPERTY_OBJECT_SIZE = 0xDC04; + /** @hide */ public static final int PROPERTY_ASSOCIATION_TYPE = 0xDC05; + /** @hide */ public static final int PROPERTY_ASSOCIATION_DESC = 0xDC06; + /** @hide */ public static final int PROPERTY_OBJECT_FILE_NAME = 0xDC07; + /** @hide */ public static final int PROPERTY_DATE_CREATED = 0xDC08; + /** @hide */ public static final int PROPERTY_DATE_MODIFIED = 0xDC09; + /** @hide */ public static final int PROPERTY_KEYWORDS = 0xDC0A; + /** @hide */ public static final int PROPERTY_PARENT_OBJECT = 0xDC0B; + /** @hide */ public static final int PROPERTY_ALLOWED_FOLDER_CONTENTS = 0xDC0C; + /** @hide */ public static final int PROPERTY_HIDDEN = 0xDC0D; + /** @hide */ public static final int PROPERTY_SYSTEM_OBJECT = 0xDC0E; + /** @hide */ public static final int PROPERTY_PERSISTENT_UID = 0xDC41; + /** @hide */ public static final int PROPERTY_SYNC_ID = 0xDC42; + /** @hide */ public static final int PROPERTY_PROPERTY_BAG = 0xDC43; + /** @hide */ public static final int PROPERTY_NAME = 0xDC44; + /** @hide */ public static final int PROPERTY_CREATED_BY = 0xDC45; + /** @hide */ public static final int PROPERTY_ARTIST = 0xDC46; + /** @hide */ public static final int PROPERTY_DATE_AUTHORED = 0xDC47; + /** @hide */ public static final int PROPERTY_DESCRIPTION = 0xDC48; + /** @hide */ public static final int PROPERTY_URL_REFERENCE = 0xDC49; + /** @hide */ public static final int PROPERTY_LANGUAGE_LOCALE = 0xDC4A; + /** @hide */ public static final int PROPERTY_COPYRIGHT_INFORMATION = 0xDC4B; + /** @hide */ public static final int PROPERTY_SOURCE = 0xDC4C; + /** @hide */ public static final int PROPERTY_ORIGIN_LOCATION = 0xDC4D; + /** @hide */ public static final int PROPERTY_DATE_ADDED = 0xDC4E; + /** @hide */ public static final int PROPERTY_NON_CONSUMABLE = 0xDC4F; + /** @hide */ public static final int PROPERTY_CORRUPT_UNPLAYABLE = 0xDC50; + /** @hide */ public static final int PROPERTY_PRODUCER_SERIAL_NUMBER = 0xDC51; + /** @hide */ public static final int PROPERTY_REPRESENTATIVE_SAMPLE_FORMAT = 0xDC81; + /** @hide */ public static final int PROPERTY_REPRESENTATIVE_SAMPLE_SIZE = 0xDC82; + /** @hide */ public static final int PROPERTY_REPRESENTATIVE_SAMPLE_HEIGHT = 0xDC83; + /** @hide */ public static final int PROPERTY_REPRESENTATIVE_SAMPLE_WIDTH = 0xDC84; + /** @hide */ public static final int PROPERTY_REPRESENTATIVE_SAMPLE_DURATION = 0xDC85; + /** @hide */ public static final int PROPERTY_REPRESENTATIVE_SAMPLE_DATA = 0xDC86; + /** @hide */ public static final int PROPERTY_WIDTH = 0xDC87; + /** @hide */ public static final int PROPERTY_HEIGHT = 0xDC88; + /** @hide */ public static final int PROPERTY_DURATION = 0xDC89; + /** @hide */ public static final int PROPERTY_RATING = 0xDC8A; + /** @hide */ public static final int PROPERTY_TRACK = 0xDC8B; + /** @hide */ public static final int PROPERTY_GENRE = 0xDC8C; + /** @hide */ public static final int PROPERTY_CREDITS = 0xDC8D; + /** @hide */ public static final int PROPERTY_LYRICS = 0xDC8E; + /** @hide */ public static final int PROPERTY_SUBSCRIPTION_CONTENT_ID = 0xDC8F; + /** @hide */ public static final int PROPERTY_PRODUCED_BY = 0xDC90; + /** @hide */ public static final int PROPERTY_USE_COUNT = 0xDC91; + /** @hide */ public static final int PROPERTY_SKIP_COUNT = 0xDC92; + /** @hide */ public static final int PROPERTY_LAST_ACCESSED = 0xDC93; + /** @hide */ public static final int PROPERTY_PARENTAL_RATING = 0xDC94; + /** @hide */ public static final int PROPERTY_META_GENRE = 0xDC95; + /** @hide */ public static final int PROPERTY_COMPOSER = 0xDC96; + /** @hide */ public static final int PROPERTY_EFFECTIVE_RATING = 0xDC97; + /** @hide */ public static final int PROPERTY_SUBTITLE = 0xDC98; + /** @hide */ public static final int PROPERTY_ORIGINAL_RELEASE_DATE = 0xDC99; + /** @hide */ public static final int PROPERTY_ALBUM_NAME = 0xDC9A; + /** @hide */ public static final int PROPERTY_ALBUM_ARTIST = 0xDC9B; + /** @hide */ public static final int PROPERTY_MOOD = 0xDC9C; + /** @hide */ public static final int PROPERTY_DRM_STATUS = 0xDC9D; + /** @hide */ public static final int PROPERTY_SUB_DESCRIPTION = 0xDC9E; + /** @hide */ public static final int PROPERTY_IS_CROPPED = 0xDCD1; + /** @hide */ public static final int PROPERTY_IS_COLOUR_CORRECTED = 0xDCD2; + /** @hide */ public static final int PROPERTY_IMAGE_BIT_DEPTH = 0xDCD3; + /** @hide */ public static final int PROPERTY_F_NUMBER = 0xDCD4; + /** @hide */ public static final int PROPERTY_EXPOSURE_TIME = 0xDCD5; + /** @hide */ public static final int PROPERTY_EXPOSURE_INDEX = 0xDCD6; + /** @hide */ public static final int PROPERTY_TOTAL_BITRATE = 0xDE91; + /** @hide */ public static final int PROPERTY_BITRATE_TYPE = 0xDE92; + /** @hide */ public static final int PROPERTY_SAMPLE_RATE = 0xDE93; + /** @hide */ public static final int PROPERTY_NUMBER_OF_CHANNELS = 0xDE94; + /** @hide */ public static final int PROPERTY_AUDIO_BIT_DEPTH = 0xDE95; + /** @hide */ public static final int PROPERTY_SCAN_TYPE = 0xDE97; + /** @hide */ public static final int PROPERTY_AUDIO_WAVE_CODEC = 0xDE99; + /** @hide */ public static final int PROPERTY_AUDIO_BITRATE = 0xDE9A; + /** @hide */ public static final int PROPERTY_VIDEO_FOURCC_CODEC = 0xDE9B; + /** @hide */ public static final int PROPERTY_VIDEO_BITRATE = 0xDE9C; + /** @hide */ public static final int PROPERTY_FRAMES_PER_THOUSAND_SECONDS = 0xDE9D; + /** @hide */ public static final int PROPERTY_KEYFRAME_DISTANCE = 0xDE9E; + /** @hide */ public static final int PROPERTY_BUFFER_SIZE = 0xDE9F; + /** @hide */ public static final int PROPERTY_ENCODING_QUALITY = 0xDEA0; + /** @hide */ public static final int PROPERTY_ENCODING_PROFILE = 0xDEA1; + /** @hide */ public static final int PROPERTY_DISPLAY_NAME = 0xDCE0; - public static final int PROPERTY_BODY_TEXT = 0xDCE1; - public static final int PROPERTY_SUBJECT = 0xDCE2; - public static final int PROPERTY_PRIORITY = 0xDCE3; - public static final int PROPERTY_GIVEN_NAME = 0xDD00; - public static final int PROPERTY_MIDDLE_NAMES = 0xDD01; - public static final int PROPERTY_FAMILY_NAME = 0xDD02; - public static final int PROPERTY_PREFIX = 0xDD03; - public static final int PROPERTY_SUFFIX = 0xDD04; - public static final int PROPERTY_PHONETIC_GIVEN_NAME = 0xDD05; - public static final int PROPERTY_PHONETIC_FAMILY_NAME = 0xDD06; - public static final int PROPERTY_EMAIL_PRIMARY = 0xDD07; - public static final int PROPERTY_EMAIL_PERSONAL_1 = 0xDD08; - public static final int PROPERTY_EMAIL_PERSONAL_2 = 0xDD09; - public static final int PROPERTY_EMAIL_BUSINESS_1 = 0xDD0A; - public static final int PROPERTY_EMAIL_BUSINESS_2 = 0xDD0B; - public static final int PROPERTY_EMAIL_OTHERS = 0xDD0C; - public static final int PROPERTY_PHONE_NUMBER_PRIMARY = 0xDD0D; - public static final int PROPERTY_PHONE_NUMBER_PERSONAL = 0xDD0E; - public static final int PROPERTY_PHONE_NUMBER_PERSONAL_2 = 0xDD0F; - public static final int PROPERTY_PHONE_NUMBER_BUSINESS = 0xDD10; - public static final int PROPERTY_PHONE_NUMBER_BUSINESS_2 = 0xDD11; - public static final int PROPERTY_PHONE_NUMBER_MOBILE= 0xDD12; - public static final int PROPERTY_PHONE_NUMBER_MOBILE_2 = 0xDD13; - public static final int PROPERTY_FAX_NUMBER_PRIMARY = 0xDD14; - public static final int PROPERTY_FAX_NUMBER_PERSONAL= 0xDD15; - public static final int PROPERTY_FAX_NUMBER_BUSINESS= 0xDD16; - public static final int PROPERTY_PAGER_NUMBER = 0xDD17; - public static final int PROPERTY_PHONE_NUMBER_OTHERS= 0xDD18; - public static final int PROPERTY_PRIMARY_WEB_ADDRESS= 0xDD19; - public static final int PROPERTY_PERSONAL_WEB_ADDRESS = 0xDD1A; - public static final int PROPERTY_BUSINESS_WEB_ADDRESS = 0xDD1B; - public static final int PROPERTY_INSTANT_MESSANGER_ADDRESS = 0xDD1C; - public static final int PROPERTY_INSTANT_MESSANGER_ADDRESS_2 = 0xDD1D; - public static final int PROPERTY_INSTANT_MESSANGER_ADDRESS_3 = 0xDD1E; - public static final int PROPERTY_POSTAL_ADDRESS_PERSONAL_FULL = 0xDD1F; - public static final int PROPERTY_POSTAL_ADDRESS_PERSONAL_LINE_1 = 0xDD20; - public static final int PROPERTY_POSTAL_ADDRESS_PERSONAL_LINE_2 = 0xDD21; - public static final int PROPERTY_POSTAL_ADDRESS_PERSONAL_CITY = 0xDD22; - public static final int PROPERTY_POSTAL_ADDRESS_PERSONAL_REGION = 0xDD23; - public static final int PROPERTY_POSTAL_ADDRESS_PERSONAL_POSTAL_CODE = 0xDD24; - public static final int PROPERTY_POSTAL_ADDRESS_PERSONAL_COUNTRY = 0xDD25; - public static final int PROPERTY_POSTAL_ADDRESS_BUSINESS_FULL = 0xDD26; - public static final int PROPERTY_POSTAL_ADDRESS_BUSINESS_LINE_1 = 0xDD27; - public static final int PROPERTY_POSTAL_ADDRESS_BUSINESS_LINE_2 = 0xDD28; - public static final int PROPERTY_POSTAL_ADDRESS_BUSINESS_CITY = 0xDD29; - public static final int PROPERTY_POSTAL_ADDRESS_BUSINESS_REGION = 0xDD2A; - public static final int PROPERTY_POSTAL_ADDRESS_BUSINESS_POSTAL_CODE = 0xDD2B; - public static final int PROPERTY_POSTAL_ADDRESS_BUSINESS_COUNTRY = 0xDD2C; - public static final int PROPERTY_POSTAL_ADDRESS_OTHER_FULL = 0xDD2D; - public static final int PROPERTY_POSTAL_ADDRESS_OTHER_LINE_1 = 0xDD2E; - public static final int PROPERTY_POSTAL_ADDRESS_OTHER_LINE_2 = 0xDD2F; - public static final int PROPERTY_POSTAL_ADDRESS_OTHER_CITY = 0xDD30; - public static final int PROPERTY_POSTAL_ADDRESS_OTHER_REGION = 0xDD31; - public static final int PROPERTY_POSTAL_ADDRESS_OTHER_POSTAL_CODE = 0xDD32; - public static final int PROPERTY_POSTAL_ADDRESS_OTHER_COUNTRY = 0xDD33; - public static final int PROPERTY_ORGANIZATION_NAME = 0xDD34; - public static final int PROPERTY_PHONETIC_ORGANIZATION_NAME = 0xDD35; - public static final int PROPERTY_ROLE = 0xDD36; - public static final int PROPERTY_BIRTHDATE = 0xDD37; - public static final int PROPERTY_MESSAGE_TO = 0xDD40; - public static final int PROPERTY_MESSAGE_CC = 0xDD41; - public static final int PROPERTY_MESSAGE_BCC = 0xDD42; - public static final int PROPERTY_MESSAGE_READ = 0xDD43; - public static final int PROPERTY_MESSAGE_RECEIVED_TIME = 0xDD44; - public static final int PROPERTY_MESSAGE_SENDER = 0xDD45; - public static final int PROPERTY_ACTIVITY_BEGIN_TIME = 0xDD50; - public static final int PROPERTY_ACTIVITY_END_TIME = 0xDD51; - public static final int PROPERTY_ACTIVITY_LOCATION = 0xDD52; - public static final int PROPERTY_ACTIVITY_REQUIRED_ATTENDEES = 0xDD54; - public static final int PROPERTY_ACTIVITY_OPTIONAL_ATTENDEES = 0xDD55; - public static final int PROPERTY_ACTIVITY_RESOURCES = 0xDD56; - public static final int PROPERTY_ACTIVITY_ACCEPTED = 0xDD57; - public static final int PROPERTY_ACTIVITY_TENTATIVE = 0xDD58; - public static final int PROPERTY_ACTIVITY_DECLINED = 0xDD59; - public static final int PROPERTY_ACTIVITY_REMAINDER_TIME = 0xDD5A; - public static final int PROPERTY_ACTIVITY_OWNER = 0xDD5B; - public static final int PROPERTY_ACTIVITY_STATUS = 0xDD5C; - public static final int PROPERTY_OWNER = 0xDD5D; - public static final int PROPERTY_EDITOR = 0xDD5E; - public static final int PROPERTY_WEBMASTER = 0xDD5F; - public static final int PROPERTY_URL_SOURCE = 0xDD60; - public static final int PROPERTY_URL_DESTINATION = 0xDD61; - public static final int PROPERTY_TIME_BOOKMARK = 0xDD62; - public static final int PROPERTY_OBJECT_BOOKMARK = 0xDD63; - public static final int PROPERTY_BYTE_BOOKMARK = 0xDD64; - public static final int PROPERTY_LAST_BUILD_DATE = 0xDD70; - public static final int PROPERTY_TIME_TO_LIVE = 0xDD71; - public static final int PROPERTY_MEDIA_GUID = 0xDD72; // MTP device properties + /** @hide */ public static final int DEVICE_PROPERTY_UNDEFINED = 0x5000; + /** @hide */ public static final int DEVICE_PROPERTY_BATTERY_LEVEL = 0x5001; + /** @hide */ public static final int DEVICE_PROPERTY_FUNCTIONAL_MODE = 0x5002; + /** @hide */ public static final int DEVICE_PROPERTY_IMAGE_SIZE = 0x5003; + /** @hide */ public static final int DEVICE_PROPERTY_COMPRESSION_SETTING = 0x5004; + /** @hide */ public static final int DEVICE_PROPERTY_WHITE_BALANCE = 0x5005; + /** @hide */ public static final int DEVICE_PROPERTY_RGB_GAIN = 0x5006; + /** @hide */ public static final int DEVICE_PROPERTY_F_NUMBER = 0x5007; + /** @hide */ public static final int DEVICE_PROPERTY_FOCAL_LENGTH = 0x5008; + /** @hide */ public static final int DEVICE_PROPERTY_FOCUS_DISTANCE = 0x5009; + /** @hide */ public static final int DEVICE_PROPERTY_FOCUS_MODE = 0x500A; + /** @hide */ public static final int DEVICE_PROPERTY_EXPOSURE_METERING_MODE = 0x500B; + /** @hide */ public static final int DEVICE_PROPERTY_FLASH_MODE = 0x500C; + /** @hide */ public static final int DEVICE_PROPERTY_EXPOSURE_TIME = 0x500D; + /** @hide */ public static final int DEVICE_PROPERTY_EXPOSURE_PROGRAM_MODE = 0x500E; + /** @hide */ public static final int DEVICE_PROPERTY_EXPOSURE_INDEX = 0x500F; + /** @hide */ public static final int DEVICE_PROPERTY_EXPOSURE_BIAS_COMPENSATION = 0x5010; + /** @hide */ public static final int DEVICE_PROPERTY_DATETIME = 0x5011; + /** @hide */ public static final int DEVICE_PROPERTY_CAPTURE_DELAY = 0x5012; + /** @hide */ public static final int DEVICE_PROPERTY_STILL_CAPTURE_MODE = 0x5013; + /** @hide */ public static final int DEVICE_PROPERTY_CONTRAST = 0x5014; + /** @hide */ public static final int DEVICE_PROPERTY_SHARPNESS = 0x5015; + /** @hide */ public static final int DEVICE_PROPERTY_DIGITAL_ZOOM = 0x5016; + /** @hide */ public static final int DEVICE_PROPERTY_EFFECT_MODE = 0x5017; + /** @hide */ public static final int DEVICE_PROPERTY_BURST_NUMBER= 0x5018; + /** @hide */ public static final int DEVICE_PROPERTY_BURST_INTERVAL = 0x5019; + /** @hide */ public static final int DEVICE_PROPERTY_TIMELAPSE_NUMBER = 0x501A; + /** @hide */ public static final int DEVICE_PROPERTY_TIMELAPSE_INTERVAL = 0x501B; + /** @hide */ public static final int DEVICE_PROPERTY_FOCUS_METERING_MODE = 0x501C; + /** @hide */ public static final int DEVICE_PROPERTY_UPLOAD_URL = 0x501D; + /** @hide */ public static final int DEVICE_PROPERTY_ARTIST = 0x501E; + /** @hide */ public static final int DEVICE_PROPERTY_COPYRIGHT_INFO = 0x501F; + /** @hide */ public static final int DEVICE_PROPERTY_SYNCHRONIZATION_PARTNER = 0xD401; + /** @hide */ public static final int DEVICE_PROPERTY_DEVICE_FRIENDLY_NAME = 0xD402; + /** @hide */ public static final int DEVICE_PROPERTY_VOLUME = 0xD403; + /** @hide */ public static final int DEVICE_PROPERTY_SUPPORTED_FORMATS_ORDERED = 0xD404; + /** @hide */ public static final int DEVICE_PROPERTY_DEVICE_ICON = 0xD405; + /** @hide */ public static final int DEVICE_PROPERTY_PLAYBACK_RATE = 0xD410; + /** @hide */ public static final int DEVICE_PROPERTY_PLAYBACK_OBJECT = 0xD411; + /** @hide */ public static final int DEVICE_PROPERTY_PLAYBACK_CONTAINER_INDEX = 0xD412; + /** @hide */ public static final int DEVICE_PROPERTY_SESSION_INITIATOR_VERSION_INFO = 0xD406; + /** @hide */ public static final int DEVICE_PROPERTY_PERCEIVED_DEVICE_TYPE = 0xD407; - /** * Object is not protected. It may be modified and deleted, and its properties * may be modified. @@ -424,5 +569,8 @@ public final class MtpConstants { */ public static final int PROTECTION_STATUS_NON_TRANSFERABLE_DATA = 0x8003; + /** + * Association type for objects representing file system directories. + */ public static final int ASSOCIATION_TYPE_GENERIC_FOLDER = 0x0001; } diff --git a/media/java/android/mtp/MtpDevice.java b/media/java/android/mtp/MtpDevice.java index 2d726c23dbf8..78b2253d1da5 100644 --- a/media/java/android/mtp/MtpDevice.java +++ b/media/java/android/mtp/MtpDevice.java @@ -22,9 +22,7 @@ import android.os.ParcelFileDescriptor; import android.util.Log; /** - * This class represents an MTP device connected on the USB host bus. - * - * {@hide} + * This class represents an MTP or PTP device connected on the USB host bus. */ public final class MtpDevice { @@ -36,10 +34,21 @@ public final class MtpDevice { System.loadLibrary("media_jni"); } + /** + * MtpClient constructor + * + * @param device the {@link android.hardware.UsbDevice} for the MTP or PTP device + */ public MtpDevice(UsbDevice device) { mDevice = device; } + /** + * Opens the MTP or PTP device and return an {@link android.mtp.MtpDevice} for it. + * + * @param manager reference to {@link android.hardware.UsbManager} + * @return true if the device was successfully opened. + */ public boolean open(UsbManager manager) { if (manager.openDevice(mDevice)) { return native_open(mDevice.getDeviceName(), mDevice.getFileDescriptor()); @@ -48,14 +57,15 @@ public final class MtpDevice { } } + /** + * Closes all resources related to the MtpDevice object + */ public void close() { - Log.d(TAG, "close"); native_close(); } @Override protected void finalize() throws Throwable { - Log.d(TAG, "finalize"); try { native_close(); } finally { @@ -63,10 +73,20 @@ public final class MtpDevice { } } + /** + * Returns the name of the USB device + * + * @return the device name + */ public String getDeviceName() { return mDevice.getDeviceName(); } + /** + * Returns the ID of the USB device + * + * @return the device ID + */ public int getDeviceId() { return mDevice.getDeviceId(); } @@ -76,48 +96,118 @@ public final class MtpDevice { return mDevice.getDeviceName(); } + /** + * Returns the {@link android.mtp.MtpDeviceInfo} for this device + * + * @return the device info + */ public MtpDeviceInfo getDeviceInfo() { return native_get_device_info(); } + /** + * Returns the list of IDs for all storage units on this device + * + * @return the storage IDs + */ public int[] getStorageIds() { return native_get_storage_ids(); } + /** + * Returns the list of object handles for all objects on the given storage unit, + * with the given format and parent. + * + * @param storageId the storage unit to query + * @param format the format of the object to return, or zero for all formats + * @param objectHandle the parent object to query, or zero for the storage root + * @return the object handles + */ public int[] getObjectHandles(int storageId, int format, int objectHandle) { return native_get_object_handles(storageId, format, objectHandle); } + /** + * Returns the data for an object as a byte array. + * + * @param objectHandle handle of the object to read + * @param objectSize the size of the object (this should match + * {@link android.mtp.MtpObjectInfo#getCompressedSize} + * @return the object's data, or null if reading fails + */ public byte[] getObject(int objectHandle, int objectSize) { return native_get_object(objectHandle, objectSize); } + /** + * Returns the thumbnail data for an object as a byte array. + * + * @param objectHandle handle of the object to read + * @return the object's thumbnail, or null if reading fails + */ public byte[] getThumbnail(int objectHandle) { return native_get_thumbnail(objectHandle); } + /** + * Retrieves the {@link android.mtp.MtpStorageInfo} for a storage unit. + * + * @param storageId the ID of the storage unit + * @return the MtpStorageInfo + */ public MtpStorageInfo getStorageInfo(int storageId) { return native_get_storage_info(storageId); } + /** + * Retrieves the {@link android.mtp.MtpObjectInfo} for an object. + * + * @param objectHandle the handle of the object + * @return the MtpObjectInfo + */ public MtpObjectInfo getObjectInfo(int objectHandle) { return native_get_object_info(objectHandle); } + /** + * Deletes an object on the device. + * + * @param objectHandle handle of the object to delete + * @return true if the deletion succeeds + */ public boolean deleteObject(int objectHandle) { return native_delete_object(objectHandle); } + /** + * Retrieves the object handle for the parent of an object on the device. + * + * @param objectHandle handle of the object to query + * @return the parent's handle, or zero if it is in the root of the storage + */ public long getParent(int objectHandle) { return native_get_parent(objectHandle); } + /** + * Retrieves the ID of the storage unit containing the given object on the device. + * + * @param objectHandle handle of the object to query + * @return the object's storage unit ID + */ public long getStorageID(int objectHandle) { return native_get_storage_id(objectHandle); } - // Reads a file from device to host to the specified destination. - // Returns true if the transfer succeeds. + /** + * Copies the data for an object to a file in external storage. + * + * @param objectHandle handle of the object to read + * @param destPath path to destination for the file transfer. + * This path should be in the external storage as defined by + * {@link android.os.Environment#getExternalStorageDirectory} + * @return true if the file transfer succeeds + */ public boolean importFile(int objectHandle, String destPath) { return native_import_file(objectHandle, destPath); } diff --git a/media/java/android/mtp/MtpDeviceInfo.java b/media/java/android/mtp/MtpDeviceInfo.java index d918c20ec080..ef9436dfa2ce 100644 --- a/media/java/android/mtp/MtpDeviceInfo.java +++ b/media/java/android/mtp/MtpDeviceInfo.java @@ -20,8 +20,6 @@ package android.mtp; * This class encapsulates information about an MTP device. * This corresponds to the DeviceInfo Dataset described in * section 5.1.1 of the MTP specification. - * - * {@hide} */ public class MtpDeviceInfo { diff --git a/media/java/android/mtp/MtpObjectInfo.java b/media/java/android/mtp/MtpObjectInfo.java index 309d5243d918..5bbfe9a6888f 100644 --- a/media/java/android/mtp/MtpObjectInfo.java +++ b/media/java/android/mtp/MtpObjectInfo.java @@ -20,8 +20,6 @@ package android.mtp; * This class encapsulates information about an object on an MTP device. * This corresponds to the ObjectInfo Dataset described in * section 5.3.1 of the MTP specification. - * - * {@hide} */ public final class MtpObjectInfo { private int mHandle; diff --git a/media/java/android/mtp/MtpStorageInfo.java b/media/java/android/mtp/MtpStorageInfo.java index 811455a9ce3c..09736a825f32 100644 --- a/media/java/android/mtp/MtpStorageInfo.java +++ b/media/java/android/mtp/MtpStorageInfo.java @@ -20,8 +20,6 @@ package android.mtp; * This class encapsulates information about a storage unit on an MTP device. * This corresponds to the StorageInfo Dataset described in * section 5.2.2 of the MTP specification. - * - * {@hide} */ public final class MtpStorageInfo { |