МTP (Media Transfer Protocol) впервые появился на Android девайсах с Honeycomb. Протокол немного отличается от привычного USB Mass Storage (UMS), при котором вы включаете USB мод и начинаете перемещать файлы. А поскольку МТР стал частью Ice Cream Sandwich на Galaxy Nexus, то неплохо было бы выяснить все нюансы. В посте мы попробуем максимально разобраться с тем, что конкретно представляет собой этот протокол, какая в нем необходимость, и как его настроить для упрощения трансфера файлов.
Как включить режим MTP Android?
Для этого следует зайти в «Настройки», далее в раздел «О телефоне — Информация об устройстве» и там 8 раз тапнуть пальцем в пункт «Номер сборки». После этого в настройках в самом низу над «О телефоне» появится новый раздел «Для разработчиков». Заходите туда, там ищете «Конфигурация USB» и в нем выставляете MTP
.
Интересные материалы:
Что делать если собака кашляет? Что делать если собака кидается на кошку? Что делать если собака лает на каждый шорох? Что делать если собака лает на улице? Что делать если собака лает постоянно? Что делать если собака начинает задыхаться? Что делать если собака подавилась и не может откашляться? Что делать если собака проглотила кость? Что делать если собака сильно кусается? Что делать если собака умерла?
Что такое МТР?
МТР — это набор кастомных расширений для PTP (Picture Transfer Protocol), который направлен на трансфер файлов и связанных с ними метаданных по USB. Все еще тут? Тогда продолжим.
Изначально часть структуры Windows Media, но в 2008 МТР был стандартизирован как тип USB устройства, тем самым, став сформировавшимся стандартом. Ели вы были обладателем iriver или Creative MP3 плееров, вы вероятно сталкивались с МТР. Если вы пользуетесь цифровой камерой, которая при подключении к ПК автоматически распознается как устройство, то в работе задействован РТР, который, по сути, является тем же, что и МТР. Вещь достаточно старая, но не для Android.
MTP, внешнее хранилище и ваше приложение
Некоторые изменения после Android 3.x могут повлиять на ваше приложение, если вы сохраняете данные на внешнем хранилище и хотите, чтобы пользователи имели доступ к этим файлам с ПК или ноутбука.
Android 3.0 изменил средства, с помощью которых пользователи монтируют внешнее хранилище и делают его доступным для компьютера. Ранее в Android использовался USB Mass Storage, тот же протокол, который используется USB-накопителями. Вот почему внешнее хранилище было недоступно, когда хост-машина монтировала его — USB Mass Storage не был разработан для интеллектуальных устройств хранения.
Теперь в Android используется Media Transfer Protocol как способ монтирования внешнего хранилища. Многое из того, что было написано о нём, основано на пользовательском опыте, например, на необходимости использовать стороннее ПО для использования MTP в OS X и Linux.
Тем не менее, для разработчиков важно другое изменение — содержимое MTP не основано на буквальном содержимом внешнего хранилища. Вместо этого контент в MTP основан на том, какие файлы были проверены MediaScannerConnection. Если вы записываете файл на внешнее хранилище, то до тех пор, пока этот файл не будет проверен MediaScannerConnection, он не будет отображаться пользователям через MTP.
Внешнее хранилище сканируется при перезагрузке, и, возможно, периодически. Пользователи могут самостоятельно запустить принудительное сканирование с помощью утилит, например, SDRescan.
Когда вы добавляете файлы в файловую систему Android, эти файлы не подхватываются MediaScanner автоматически. Лучше всего использовать метод scanFile() у класса MediaScannerConnection для обновление базы данных мультимедиа после закрытия файла. Это сразу сделает файл доступным для пользователя. Для этого в коде нужно добавить следующий код:
Здесь в параметры передаются:
Раньше нам требовался MediaScannerConnection для реальных «медиа», таких как MP3 или MP4. Сейчас его нужно использовать для всего, если мы хотим вернуть пользователю результат немедленно. Это означает, что вы должны использовать MediaScanner также для любых файлов, которые пользователь может загрузить на свой компьютер. Это может быть что угодно, например. CSV файлы, файлы PDF и так далее. Если пользователь может захотеть использовать их на компьютере, вы должны сделать так, чтобы эти файлы были известны, используя методы, описанные выше.
Источник
Функции прямой модификации и частичной передачи
Эти функции можно использовать как более эффективные альтернативы передаче и повторной загрузке всего файла:
Из спецификации MTP 1.1:[5]
Код операции | Название операции | Объяснение |
0x9805 | GetObjectPropList | Передача метаданных |
0x9806 | SetObjectPropList | |
0x1019 | MoveObject | Переименовать файл или каталог |
0x101B | GetPartialObject | Запросить байтовый диапазон файла |
Расширения Android
По данным go-mtpfs:[9]
Код операции | Название операции | Объяснение |
0x95C1 | GetPartialObject64 | Такой же как GetPartialObject , но с 64-битным смещением |
0x95C2 | SendPartialObject | Такой же как GetPartialObject64 , но копирование хоста на устройство |
0x95C3 | TruncateObject | Обрезает файл до 64-битной длины |
0x95C4 | BeginEditObject | Необходимо вызвать перед использованием SendPartialObject и TruncateObject |
0x95C5 | EndEditObject | Вызывается для фиксации изменений, внесенных SendPartialObject и TruncateObject |
Зачем использовать MTP вместо USB Mass Storage?
Суть использования MTP заключается в том, что теперь производителям мобильных девайсов не надо создавать два отдельных раздела, один для приложений, второй для медиа файлов. Раньше за ними был замечен грешок, который заключался в расширении второго раздела за счет первого, а это очень часто приводило к нехватке места для новых приложений. С МТР оба типа фалов можно хранить вместе.
У USB Mass Storage есть один большой недостаток — когда вы создаете разделы памяти, то один из них оказывается полностью во власти другого девайса. Это означает, что у вашего планшета или смартфона не будет доступа к этому разделу, но компьютер, к которому подключен девайс, может всячески им распоряжаться. По этой причине некоторые приложения и, особенно, виджеты, помещенные на SD карту, не работают.
Еще одним преимуществом МТР является отсутствие необходимости использования файловой системы FAT для хранения. Это в конечном итоге приводит к более быстрой работе девайса.
PTP — цифровая камера
PTP означает «Протокол передачи изображений». Когда Android использует этот протокол, он представляется компьютеру как цифровая камера.
MTP фактически основан на PTP, но добавляет больше функций или «расширений». PTP работает аналогично MTP и обычно используется цифровыми камерами. Любая программа, которая поддерживает захват фотографий с цифровой камеры, будет поддерживать захват фотографий с телефона Android при выборе режима PTP. PTP был разработан, чтобы быть стандартным протоколом для связи с цифровыми камерами.
В этом режиме Ваше устройство Android будет работать с приложениями для цифровых камер, которые поддерживают PTP, но не MTP. Apple Mac OS X поддерживает PTP, поэтому Вы можете использовать режим PTP для передачи фотографий с устройства Android на Mac через USB-соединение без какого-либо специального программного обеспечения.
Если у Вас старое устройство Android, Вы вынуждены использовать USB-накопитель. На современном устройстве Android у Вас есть выбор между MTP и PTP — Вы должны использовать MTP, если у Вас нет программного обеспечения, которое поддерживает только PTP.
Если на Вашем устройстве установлена съемная SD-карта, Вы можете извлечь SD-карту и вставить ее в слот для SD-карты Вашего компьютера. SD-карта будет доступна для Вашего компьютера в качестве устройства хранения, так что Вы сможете получить доступ ко всем файлам на ней, запустить программное обеспечение для восстановления файлов и делать все, что Вы не можете сделать с MTP.
Источник
Общие рекомендации по инсталляции драйверов для большинства Android-устройств
В принципе, почти всегда срабатывает автоматическая установка необходимых драйверов самой операционкой Windows. Однако можно использовать и альтернативные методы, связанные с инсталляцией сопутствующих утилит для смартфона или планшета.
Так, например, тот же MTP Device драйвер Samsung инсталлируется автоматически при наличии последней версии приложения Kies. Заметьте, для каждой конкретной модели мобильного гаджета корпорация Samsung драйверы не выпускает, так что искать их, скажем, для S6 или для Galaxy Note 2 не имеет абсолютно никакого смысла.
Для смартфонов HTC нужно использовать специализированное ПО под названием HTC Sync Manager (иногда может потребоваться инсталляция прошивки через режим FastBoot). Для LG можно найти драйвер на официальном сайте производителя специально под конкретную модель. Для Nexus нужно применять утилиту ADB RUN и устанавливать драйвер из стандартного «Диспетчера устройств». В случае использования гаджетов Sony есть два варианта: установка Sony PC Suite или использование драйверов FlashTool. В принципе, разницы нет, но нужно помнить, что это две взаимоисключающие программы – при установке одной другую предварительно нужно удалить.
Установка МТР
Со времен Windows XPMTP девайсы без пролем работают с Windows. Подключаете свой GalaxyNexus, выбираете MTP в качестве типа соединения, операционная система компьютера сама находит нужные драйвера, вам необходимо будет лишь немного подождать. Перемещение файлов между смартфоном и ПК без каких-либо проблем обеспечено. Но что делать тем пользователям, которые отдали предпочтение Linux и Mac?
Mac OS
Ребята с Android сделали этот процесс максимально безболезненным. Вам необходимо просто скачать и установить программу Android File Transfer, подключить девайс к компьютеру, запустить приложение и начать работу. Вы можете перетаскивать любые файлы как с устройства, так и на устройство, но объем каждого отдельного не должен превышать 4 ГБ.
Linux
С Linux начинаются некоторые трудности. Вы не добьетесь необходимой цели в один клик, но зато сможете детально изучить все происходящие при этом процессы. Не отчаивайтесь, просто придется немного повеселиться с командным окном. Вот как надо использовать Galaxy Nexus с Ubuntu:
Установите UDEV rule, открыв rules файл через терминал
sudo nano -w /etc/udev/rules.d/51-android.rules
Затем введите следующую строку внизу файла (на забудьте указать имя пользователя):
SUBSYSTEM==»usb», ATTR{idVendor}==»04e8″, ATTR{idProduct}==»6860″, MODE=»0600″, OWNER=»»
После чего настанет черед для:
- sudo apt-get install mtpfs
- sudo mkdir /media/GNexus
- sudo chmod 775 /media/GNexus
Затем следует подключить Galaxy Nexus к ПК и в том же, что и ранее окне ввести:
sudo mtpfs -o allow_other /media/GNexus
Это все позволит вам перетаскивать файлы, используя Nautilus, и не забудьте ввести следующую команду по завершении работы:
sudo umount mtpfs
Альтернатива
В качестве альтернативы можете использовать комбинацию Wifi File Explorer и QuickSSHd и отправлять файлы по беспроводному соединению.
Похожие публикации:
подскажите подключил планшет(galaxy tab 8.9) к ноуту,пишет подключено USB испоьльзкется MTP. Скачал кис.всеравно не видит устройство.помогите
можно карту памяти открыть через проводник виндоус
Когда вы подключаете телефон как USB Mass Storage, то вы отдаёте флешку телефона в безраздельное пользование компьютеру и он рассматривает её как своё устройство, загружает для неё драйвер, оперирует со структурой файловой системы. Драйвер компьютера несёт ответственность за целостность файловой системы на флешке.
Когда вы работаете, через MTP, то компьютер работает с телефоном, а не с его флешкой и работает не как с устройством хранения данных, а как с отдельным равноправным устройством, у которого можно запрашивать файлы. Все операции с файловой системой флешки выполняет сам телефон по просьбе компьютера направленной через MTP.
При работе через MTP
Подскажите, после обновления версии Адндройд до 5.0.2 при подключению к ПК появляется сообщение на телефоне что подключено как MTP-устройство. Но как теперь перекинуть фото на компьютер не пойму
Ведронутые совсем ебанулись. Найти, скачать, установить программу чтобы перекинуть кому-то файл.Напоминает времена дядюшки Ляо, когда каждый производитель требовал свою программу для трансфера. Нет уж Спасибо, я лучше на люмяше с дрисняточкой буду подключать и перекидывать, подключать и перекидывать, подключать и перекидывать,пока не надоест.
Это объяснение как минимум для специалиста по «структуре Windows Media». Уверен автор этого опуса и сам не понимает что пишет.
Источник
Сравнение с протоколом USB-накопителей [ править | править код ]
В отличие от протокола USB-дисков, MTP оперирует не секторами, а файлами. Таким образом, плеер, подключившийся как флэш-диск, полностью доверяется компьютеру; подключившийся по MTP — самостоятельно отвечает за хранение и целостность данных и, таким образом, может проигрывать одни треки одновременно с записью других, не допускать защищённые песни, на которые нет прав, и т. д. [4]
Достоинства [ править | править код ]
- Независимость от способа хранения данных. Плеер может хранить свою информацию не только в стандартной компьютерной файловой системе наподобие FAT32 или NTFS, но и, например, в базе данных SQLite.
- Из-за транзакционной записи на уровне файлов MTP-устройству не нужно «безопасное извлечение»; его можно отключить в любой момент без потери данных. Устройство само откатит (отменит и вернёт в исходное состояние) транзакцию, если выяснится, что связь пропала (отключили устройство, завис компьютер и т. д.).
- Встроенная поддержка тегов, обложек, оценок и т. д.
- Доступ по паролю.
- Дистанционное проигрывание музыки по командам с компьютера.
- Возможность использовать информацию с MTP-устройств в сторонних приложениях — например, для «скробблинга» [неизвестный термин
] проигранных на устройстве композиций на сервис Last.FM.
Недостатки [ править | править код ]
- Сложность протокола.
- Низкая скорость, связанная с транзакционным доступом.
- В Windows MTP не является файловой системой, а поддерживается на уровне прикладного ПО — поэтому «любимый файловый менеджер» не подойдёт. Требуется Windows Media Player 10-й версии; для поддержки Ogg Vorbis — 11-й. Антивирус также не просканирует подключённый плеер.
- Плеер может отказать в хранении того или иного файла. Поэтому, например, для переноса на плеере файла archive.7z приходится переименовывать его в archive.7z.mp3 .
- Встроенная поддержка защиты от копирования.
- Файл можно перезаписать только целиком и на момент начала записи должен быть известен размер — поэтому с MTP-устройством нельзя работать столь гибко, как с диском.
- Нет многозадачности — пока выполняется одна операция, другие выполнять нельзя.