Как я могу передавать файлы между Android и Linux через USB?

26

Я хочу скопировать некоторые файлы фильмов из Linux на мой телефон HTC One SV Android (без рута).

В Windows мой телефон автоматически подключает свои внутренние и SD-карты, когда я подключаю его, что позволяет мне передавать файлы.

В Linux Mint 13 Mate я всегда получаю сообщение об ошибке, когда подключаю телефон с помощью USB-кабеля, тогда может потребоваться несколько минут для установки, а иногда это не удается. Я думаю, что ошибка была ...

Ошибка инициализации камеры: -60: не удалось заблокировать устройство

Как я могу сделать эту работу?

lamwaiman1988
источник
Я бы сказал, что проблема в аппаратном обеспечении, а не в программном обеспечении, особенно в Linux или вашем дистрибутиве.
Bananguin
Мой древний телефон на базе Android 2.3 воспринимается как запоминающее устройство USB. Какую версию Android вы используете?
Ренан
Чтобы увидеть, что происходит в вашем телефоне, вы можете попробовать использовать ADB. ADB - это инструмент с SDK от Android. Вы можете видеть все в вашем телефоне. И посмотри LogError.
Ein5t3in
Я использую Android 4.1
lamwaiman1988
включение отладки по USB предотвратит блокировку устройства при подключении. Я обнаружил, что MTP всегда выходил из строя всякий раз, когда устройство автоматически блокировалось.
Cheezsteak

Ответы:

17

ОБНОВЛЕНИЕ: Есть несколько лучших альтернатив Airdroid сейчас. Однако, похоже, что большинство дистрибутивов Linux работают с MTP довольно хорошо. По своему опыту я знаю, что Mint (на основе Ubuntu) работает «из коробки», как и Manjaro (на основе Arch). Если это не работает "из коробки" или изначально, то обязательно поищите в вашем менеджере пакетов решение MTP.


Более новые версии Android монтируют хранилище как устройство MTP вместо запоминающего устройства. Преимуществом этого является одновременный доступ к устройству Android и ПК. К сожалению, в то время как Windows изначально поддерживает это нормально, решения linux на данный момент довольно глючные.

В настоящее время самым надежным (и все еще немного ненадежным для начала работы, но после подключения все в порядке) я обнаружил go-mtpfs. Вот ссылка, чтобы помочь вам настроить его. Вы должны монтировать / демонтировать из командной строки. Однако в этой ветке также есть средство запуска единства, если вы используете Ubuntu Unity.

Однако лучший вариант, если вы не передаете много данных, это использовать что-то вроде AirDroid. Это бесплатное приложение в магазине воспроизведения для передачи по локальной сети и предоставляет веб-интерфейс для использования с браузером вашего компьютера. Он даже предоставляет интерфейс для перетаскивания файлов, а также даже предоставляет доступ к смс-сообщениям, журналам вызовов, установкам приложений и многим другим вещам.

Дрейк Кларрис
источник
Я установил последнюю версию Linux Mint 15 Olivia, так как команда заявила, что они приложили усилия для подключения к Android. Я попробовал USB-соединение, оно работает просто отлично. Гораздо лучше, чем Linux Mint 13. Так что я думаю, что это просто проблема Linux с передачей MTP, и производительность варьируется между дистрибутивами.
lamwaiman1988
1
Для увеличения скорости вы также можете использовать, adb pullкак описано в этом посте: vxlabs.com/2014/11/06/…
Стефан ван дер Вальт
28
@ lamwaiman1988 Я НЕ ДОВЕРЯЮ ДУХОМ. Разрешения приложений Airdroid: 1. История устройства и приложения 2. Идентификационные данные 3. Контакты / Календарь 4. Местоположение 5. SMS 6. Телефон 7. Фотографии / Мультимедиа / Файлы 8. Камера / Микрофон 9. Информация о подключении к Wi-Fi 10. Идентификатор устройства и вызов Информация .... Увидев этот огромный список, я хотел узнать больше о компании. «Sand Studio» является частью «Tongbu Networks», которая работает в Китае . Xiamen Tongbu Networks - Подробности: "Xiamen Tongbu Networks Ltd; C, Комната 3, № 2, Wanghai Road, Software Park II, Ся Мэнь Ши, Фу Цзянь, 361000, Китай, +86.05922179187".
а20
Что касается вышеизложенного, этот обзор PcWorld был ироничным: «Это приложение позволяет вам полностью контролировать свое устройство Android через веб-браузер вашего компьютера».
20
2
AirDroid теперь заряжается за локальную «функцию» передачи файлов.
Sybind
9

Вы можете попробовать использовать бесплатный (бесплатно) файловый менеджер ES File Explorer на вашем телефоне Android.

Среди множества функций у него есть FTP-сервер. Таким образом, если вы можете объединить телефон и компьютер в сеть, вы можете легко передавать файлы в обе стороны с вашего компьютера. Я делаю это все время с машин Ubuntu и Fedora (через Thunar).

Режим FTP-сервера в этом приложении называется «Удаленный менеджер», он находится в разделе «Инструменты».

Большинство современных файловых менеджеров принимают следующий синтаксис:

ftp://phone_ip_address:port
Новичок
источник
1
Теперь это в разделе Сеть.
3

В основном это должно быть так же просто, как использование карты памяти. К сожалению, это не случай. Но, как и другие интеграции, Linux наверстает упущенное.

Тем временем вы можете использовать WiFi и sshd в Linux и sftp-клиент на стороне смартфона.

Или используйте Linux adb CLI для использования usb-передач.

Nils
источник
2

mtpfs - файловая система FUSE для устройств с протоколом передачи мультимедиа

apt-get install mtpfs

Выполнено. Работает как с Windows в Linux Mint / Ubuntu / и т.д.

Grizly
источник
2
sudo apt-get install jmtpfsна Джесси
Erik255
это jmptpfsтакже на wheezy.
sjas
2

Я согласен, что это не так просто, как должно быть. Например, в KDE есть реализация MTP, но он может только читать изображения, а не записывать их (по крайней мере, в моей версии).

Я обнаружил, что гораздо проще сделать это по сети. Есть несколько способов сделать это. Усуарио упомянул ES File Explorer.

Я использовал этот бесплатный FTP-сервер Android с открытым исходным кодом и нашел его простым. Вы указываете имя пользователя и пароль, затем запускаете FTP-сервер (очень ясно, работает ли сервер, и его легко включить / отключить).

Затем вы просто используете любой FTP-клиент (есть много графических клиентов, например, я использовал Konqueror). Я смог легко записать файлы обратно на телефон.

Единственным недостатком является то, что это, вероятно, немного медленнее, чем это было бы с эффективным протоколом USB, и что FTP не является безопасным (все в открытом тексте). Должно быть возможно сделать то же самое, но с Android-сервером SFTP; Я просто еще не нашел ни одного.

Мэтью Флэшен
источник
2

После поиска множества решений этой проблемы я нашел Android File Transfer для Linux . Это лучшая реализация MTP для Linux, она просто работает.

Вы можете видеть, что эта проблема была указана в списке основных проблем Linux на рабочем столе .

Linux не имеет надежно работающей бесплатной быстрой нативной (непосредственно монтируемой через ядро; FUSE не обрезает) реализации MTP. Чтобы работать с вашими MTP-устройствами, например ... телефонами на базе Linux на Android, вам лучше использовать ... Windows или MacOS X. Обновление: русский программист был настолько раздражен libMTP, что написал свое собственное полное приложение на основе Qt, которое говорит в ядро ​​Linux напрямую, используя libusb. Встречайте Android-File-Transfer-Linux.

fclad
источник
1

Предполагая, что вы используете USB-соединение, я обнаружил, что оно работает, но вам нужно сделать все в определенном порядке:

  • Не включайте телефон для начала.
  • В телефоне перейдите в «Настройки» -> «Беспроводная связь и сеть» -> «Утилиты USB» и нажмите «Подключить магазин к ПК». На телефоне появится сообщение «Подключите USB-кабель для использования запоминающего устройства».
  • Теперь подключите USB-кабель к телефону. На нем должны отображаться значок «зеленый андроид» и сообщение о подключении через USB.

(Я думаю, что мой телефон имеет более старую версию Android, надеюсь, это работает в общем случае).

ясень
источник
Эш прав, спасибо за отзыв!, Работает нормально. Для передачи mp3-файлов, вы должны нажать (на мобильном телефоне), где написано, подключиться к USB; когда вы это сделаете, откроется окно с программой или другой программой. Затем вы просто перетаскиваете свои файлы из ритм-бокса туда, где написано DEVICE в ритм-боксе. Файлы будут на вашем мобильном телефоне в папке с названием Музыка. Вы можете увидеть все файлы вашей папки на рабочем столе, нажав на значок вашего устройства.
user66631
1
К сожалению, новые версии Android не поддерживают режим запоминающего устройства. Только mtp (или ptp в некоторых случаях). Linux не очень хорошо поддерживает mtp.
Эдвард Фальк
@ Эдвард: да, ты прав. После того, как я «обновился» с Galaxy S2 до S3, режим массовой памяти больше не был доступен. Как говорит Дрейк в принятом ответе, я обнаружил, что MTP ненадежнее запоминающего устройства, поэтому это немного прискорбно, но как только вы заставите его работать, я думаю, все в порядке. Я использую gMTP в качестве клиента с графическим интерфейсом, который работает нормально, но довольно медленно.
Эш
1

Я смог использовать rsync для передачи своих файлов с телефона HTC. Команды были:

$ mkdir HTC_Dump
$ cd HTC_Dump
$ rsync -av /run/user/1000/gvfs/mtp\:host\=%5Busb%3A002%2C010%5D/ ./

В результате чего:

отправлено 12 947 428 344 байта получено 38 549 байтов 9 738 598,64 байт / с, общий размер - 12 944 119 635, ускорение - 1,00

Я нашел местоположение файлов телефона, посмотрев в свой /runкаталог.

Это было на Xubuntu 17.10, Artful Aardvark, Android был на HTC под управлением Android версии 7.0.

jjthomas
источник
нет необходимости в rsync ,, команда копирования достаточно cp -r /run/user/1000/gvfs/mtp\:host\=%5Busb%3A002%2C010%5D/ ~/Destination/Folder. Я говорю это в контексте создания единственной копии, конечно, если для обновления вашего ПК последними фотографиями, то rsync - это то, что нужно.
Exadra37
1

Я делаю это через сеть FTP, созданную ES File Explorer.

Прежде всего, настройте ваше устройство как портативную точку доступа в настройках → Модем и точка доступа → установите флажок «Портативная точка доступа Wi-Fi», а затем подключите компьютер к устройству с помощью Wi-Fi.

Это делает ваше соединение быстрее, чем соединение через центральную сеть WLAN. Затем выполните следующие действия:

  1. Откройте ES File Explorer
  2. Зайдите в Сеть → Удаленный менеджер
  3. Нажмите кнопку «Включить»
  4. В Linux (я использую Ubuntu), откройте его файловый менеджер
  5. Нажмите «Подключиться к серверу» в файловом менеджере слева
  6. Введите адрес вашего устройства появился в ES File Explorer

( ftp://...:...).

Теперь вы можете обращаться с вашим устройством как с диском на вашем компьютере.

Мохсен
источник
1

SDCard обычно представляет собой файловую систему exfat, которая по умолчанию не распознается Ubuntu по умолчанию - я не знаю, так ли это с другими дистрибутивами. Чтобы моя Ubuntu 16.04 LTS могла писать в файловую систему exfat, я сделал:

sudo apt-get install exfat-fuse exfat-utils

Теперь я могу просто подключить свой Android-телефон к настольному компьютеру с Ubuntu через USB и скопировать файлы на мою SD-карту (64 ГБ).

Роэль Ли
источник
0

Попробуйте эту команду и перезапустите, она работает для меня.

sudo apt-get install libmtp-common mtp-tools libmtp-dev libmtp-runtime libmtp9
Робби Лебота
источник
Это степень решения?
Джефф Шаллер
Это то, что у меня сработало, буквально запустил команду, мне предложили перезагрузить компьютер, и как только я снова вошел в систему, я смог читать / записывать файлы на моем устройстве Android с помощью файлового менеджера dolphin. Мне не нужно было ничего делать или изменять редактировать файлы.
Робби Лебота
Я использую Xubuntu с KDE Plasma 5 на моем Asus ux303
Робби Лебота,
Вы должны добавить эту информацию к тексту вашего ответа, который будет неполным и запутанным без него
nealmcb
0

Я обнаружил, что он работает только для USB, если я использую кабель, поставляемый с этим устройством или аналогичным устройством. USB-кабель от моего несуществующего планшета Samsung отлично работает с заменой моего Android Onix. Единственное, что работает для моего телефона, это тот кабель, который был в комплекте. Другие USB-кабели для зарядки / передачи не работают или работают не полностью: например, не будут копировать файлы .mp3. Понятия не имею, почему это так. Но кабели, не относящиеся к устройству, часто не отображаются в качестве подключения к USB-устройству.

Мне не приходилось изменять программное обеспечение или использовать специальное программное обеспечение. Просто работает.

MazinOz
источник
0

В Linux Mint 19.1 перенос большого количества фотографий можно легко осуществить, активировав «Параметры разработчика» и перейдя в «Настройки» «Настройки разработчика» на «Android-телефоне», «Конфигурация USB». Затем выберите MTP (протокол передачи изображений) вместо MTP. Теперь фотографии будут передаваться с молниеносной скоростью, просто используя файловый менеджер.

user357118
источник
0

Много хороших ответов, я просто хочу все упростить:

sudo apt install mtp-tools

Теперь подключите свой телефон Android через USB, кабель имеет значение, так что если один не работает, попробуйте другой.

mtp-detect

Выполнено. Откройте свое файловое приложение или терминал и перенесите!

Роберт Хоутон
источник
0

Я только что получил телефон Google Pixel 3, и мне нужно перенести фотографии / видео с него на мой Linux Mint 18.2. Вот как я это сделал:

  1. На моем телефоне я установил Cx File Explorer
  2. Я открыл приложение и нажал на вкладку «Сеть»
  3. Я нажал кнопку «Доступ с ПК»
  4. Я оставил значения по умолчанию на флажках («Случайный номер порта» отмечен, «Показать скрытые файлы» снят) и нажал «Запустить службу»
  5. Cx File Explorer отображает URL-адрес FTP
  6. На своем ноутбуке с Linux я открыл файловый менеджер и нажал на опцию «Файл -> Подключиться к серверу ...»
  7. В диалоговом окне «Подключение к серверу» я ввел URL-адрес FTP из шага (5) в текстовом поле «Сервер» и щелкнул «Подключиться».
  8. Теперь я могу видеть файлы моего телефона в файловом менеджере моего ноутбука
  9. Фотографии и видео, которые я хочу передать, находятся в папке устройства / DCIM / камеры (а не в папках устройства / Фильмы или устройства / Изображения, как вы могли подумать).
Дэвид Бейли
источник
0

Я бегу Mint 19.2. Мой телефон - Pixel 1st Gen, работающий под управлением Android 10. После того, как я нашел решение и попробовал варианты MTP, предложенные многими, безуспешно, я обнаружил, что если вы перейдете в «Настройки» -> «Подключить устройства -> USB» и поменять «ИСПОЛЬЗОВАТЬ USB ДЛЯ Передача файлов / Android Auto ", Nemo монтирует память телефона и предоставляет доступ к файлам устройств. В моем телефоне была установлена ​​опция «Нет передачи данных». Теперь, если бы я сначала проверил настройки USB, возможно, сработали решения MTP. Как примечание, ни одно из предложенных решений на StackExchange, HowToForge или OMG! упомянул проверку настроек USB на телефоне в первую очередь. Я прочитал несколько постов, что MTP на Mint "работает из коробки". Но опять же, нет упоминания о проверке настроек вашего телефона. Надеюсь это поможет.

hackerkatt
источник
Ряд комментариев предлагает установить mtp-tools. Не говорю, что это не обязательно. Я считаю, что первый шаг - убедиться, что в настройках USB разрешена передача файлов, прежде чем устанавливать дополнительные пакеты. В моем случае я установил libmtp9 (необходим в 19.04 LTS) и mtp-tools. Я просто получил Unable to open raw device 0сообщение об ошибке. Деинсталлированные mtp-tools, включенные настройки USB и браузер файлов альтов выскочили с запоминающего устройства Pixel, как и любой другой диск.
hackerkatt
0

Вам не нужно ничего устанавливать.

просто выполните следующее:

  1. подключите USB-кабель (?) между Linux-машиной и смартфоном. (USB-кабель (?): Вы всегда используете при зарядке смартфона.)

  2. Затем ваш телефон спросит, разрешаете ли вы доступ к данным устройства. Если вы выберете «Разрешить», будет установлено соединение MTP для доступа.

  3. Вы можете передавать файлы между вашей машиной linux и вашим adndroid.

Вот и все.

Нео
источник