Как подключить флешку к смартфону андроид? Основные проблемы. Как подключить USB флешку к Android планшету и смартфону — переносим файлы, используя внешний флеш-накопитель Программа для андроида подключения флешки


рис.1 Иллюстрация работы Android устройства в режимах USB Host и Accessory (рисунок с сайта http://developer.android.com)

Отметим, что использование USB - не единственный способ связи с тем же самодельным устройством. Android позволяет использовать еще , NFC, Wi-Fi P2P, SIP, а также стандартное сетевое подключение . Так что в арсенале разработчика достаточно возможностей для осуществления своих самых смелых замыслов.

Другим распространенным вариантом связи с различными устройствами до сих пор является использование переходника USB-COM. Материал в сети по применению переходника USB-COM в Android есть - см., например, . Популярность такого подключения обусловлена наличием большого количества уже разработанных с использованием различных микроконтроллеров устройств, связь с которыми осуществляется с помощью COM-порта (последовательного порта), что лет 10 назад являлось почти стандартным способом передать данные от компьютера к самодельной «железке».

В сравнении с COM-портом, использование USB позволяет существенно повысить скорость передачи данных и сделать этот процесс удобным для пользователя. Cкорость передачи, которая даже в случае низкоскоростных устройств (клавиатуры, мыши, джойстики), составляет 10-1500 Кбит/c, простота и невысокая стоимость кабельной системы и подключений, самоидентификация устройств с автоматическим конфигурированием, скрытие подробностей электрического подключения от конечного пользователя (плюс возможность отключения кабеля без выключения устройств), контроль ошибок и их восстановление на уровне протокола - вот неоспоримые преимущества данной технологии (см. , с.12).

Вообще, говоря об использовании USB для передачи данных, нелишним будет упомянуть книгу П.Агурова «Интерфейс USB» . Она, хотя часто критикуется в сети и выпущена последний раз в 2006 году, не раз помогла найти верное решение при поиске информации по различным аспектам применения этой технологии. В книге рассмотрены вопросы: от выбора микросхемы и схемотехники для контроллера до написания программы микроконтроллера и примеров программирования передачи данных по протоколу USB со стороны компьютера. Нельзя не указать и "первоисточник" данных по этому вопросу - сайт некоммерческой организации USB IF (USB Implementers Forum), занимающейся разработкой спецификаций этого интерфейса - , правда данный материал на английском языке. Однако именно там вы найдете исчерпывающие сведения об устройстве интерфейса USB. Есть неплохой перевод частей спецификации - . Интересующимся программными решениями со стороны микроконтроллера также можно посмотреть ссылку .

Данная статья адресована прежде всего тем, у кого есть какое-либо электронное устройство (разработанное самостоятельно или кем-то еще), протокол обмена данными с которым хорошо известен (например, уже есть программа, работающая с этим устройством в Windows/Linux) и хотелось бы иметь программу, работающую с ним в Android.

Немного о классах USB-устройств

Необходимо отметить, что разработка программного обеспечения для обмена данными с конкретным устройством сильно зависит от его реализации на уровне микроконтроллера. Привести примеры программ связи для всех типов USB-устройств в рамках одной статьи, по понятным причинам, невозможно (начальные сведения о программировании различных типов устройств можно почерпнуть в ). Однако, мы ограничимся тем, что приведем код, реализующий поиск устройства и доступ к его контрольным точкам для обмена информацией. Также разберем отправку данных на примере одного из типов USB-устройств, а именно, класса устройств HID (human interface device - класс устройств для взаимодействия с человеком). Этот класс включает в себя «медленные» устройства, такие как клавиатура, мышь, джойстик и примеров его реализации с помощью различных микроконтроллеров в сети достаточно (есть, например, и в ).

Почему именно класс HID так полюбился изготовителям различных самодельных устройств? Процитируем Википедию : «Помимо детальных спецификаций классических устройств ввода (типа клавиатур и мышек) стандарт HID определяет особый класс устройств без детальных спецификаций. Этот класс именуется USB HID Consumer Control и представляет собой по сути нерегламентированный канал связи с устройством. При этом устройство пользуется теми же стандартными для операционной системы драйверами что и мышка с клавиатурой. Таким образом, можно создать USB устройство которое не требует создания и инсталляции специальных драйверов в большинстве распространенных компьютерных операционных систем». Остается добавить только, что работает эта спецификация и в ОС Android (не исключая прошивок CyanogenMod).

Одним из вариантов обмена данными с HID-устройством является передача по прерываниям (interrupt transfer), которая используется в том случае, когда необходимо передать пакеты данных небольшого размера (максимальный размер пакета зависит от скорости передачи и составляет от 64 до 1024 байт) через заданный временной интервал. Пакет для передачи называется репортом (англ. - report, см. с.71, 95). Такой длины репорта обычно вполне хватает для обмена информацией с самодельным устройством, 64 байта информации в одном пакете, например, - это довольно много для контроллера, ведь для передачи состояний светодиода или простейшего датчика достаточно 1 бита информации.

Необходимые инструменты

Итак, нам понадобятся - планшет или телефон с Android версии не ниже 3.1. Здесь необходимо отметить, что вышеуказанный USB Host API полностью реализован не на всех мобильных устройствах (об этом упоминается и на сайте developer.android.com, см. ссылку ). В некоторых планшетах/телефонах разъем USB используется только для зарядки и связи с персональным компьютером. Еще раз отправлю читателя к списку мобильных устройств, пригодных или непригодных для наших опытов (см. ).

Понадобится также какое-либо USB-устройство (для первых опытов будет достаточно обычного USB-флеш-накопителя), переходник OTG (On-The-Go - см. рис. 2) и/или шнур USB для связи с устройством. В Википедии по поводу OTG говорится: «При подключении через USB OTG ранг устройства (ведущий или ведомый) определяется наличием или отсутствием перемычки между контактами 4 и 5 в штекере соединительного кабеля. В USB OTG кабеле такая перемычка устанавливается лишь в одном из двух разъемов (см. ).» Соответственно, нам необходима такая перемычка со стороны мобильного устройства.


Рис.2 Различия в схеме обычного USB-кабеля и OTG-кабеля (рисунок с сайта http://tech.firstpost.com)

Такой OTG-кабель для Вашего устройства можно спаять и самостоятельно. Для этого необходимо купить в радиомагазине подходящий разъем, плюс автор, например, использовал старый кабель от переносного жесткого диска:

Неплохим подспорьем в работе будет также программа USB Device Info, установленная из хранилища Google Play Market. Программа умеет определять подключенные к USB-разъему планшета/телефона устройства как с помощью Java API так и с помощью ядра Linux. То есть, если Ваше устройство не определилось с помощью Java USB Host API в USB Device Info, то, с большой вероятностью, тщетно будет использовать для этого мобильного устройства какую-либо (в том числе и свою) Android-программу, написанную с помощью Java и USB Host API.

Иногда, также, очень полезной бывает информация, выводимая командой lsusb операционной системы Linux. С ключами -v и -d lsusb выводит о USB-устройстве все, или почти все, что необходимо разработчику программного обеспечения для устройств этого класса (см. рис.3).


Рис.3 Пример вывода команд lsusb и lsusb -v -d

Далее, необходим компьютер с установленным Android SDK и интегрированной средой разработки (IDE) Eclipse с плагином ADT (хотя можно обойтись и только SDK). Как создать и установить приложение для Android можно посмотреть, например, в , или в сети Интернет.

Ну и, конечно, необходимо хотя бы а также желание добиться результата, без него никак! Отмечу, что на выяснение некоторых технических вопросов применения USB в Android автором, потребовались недели кропотливого поиска информации.

Классы Java для работы с USB в Android API

Итак, как говорится на сайте разработчиков USB Host API для Android (см. ) - «прежде чем начать, важно понять какие классы вы будете использовать в работе». В таблице 1 приведено описание важнейших классов для работы с USB Host API (попытка перевода информации с http://developer.android.com).

Таблица 1. Описание классов для работы с USB в Android

Название класса Описание
UsbManager Allows you to enumerate and communicate with connected USB devices.
Позволяет определять подключенное USB-устройство и обмениваться с ним данными.
UsbDevice Represents a connected USB device and contains methods to access its identifying information, interfaces, and endpoints.
Представляет подключенное USB-устройство и содержит методы для доступа к его идентификационной информации, интерфейсам, и конечным точкам.
UsbInterface Represents an interface of a USB device, which defines a set of functionality for the device. A device can have one or more interfaces on which to communicate on.
Представляет «интерфейс» USB-устройства, который определяет набор функций для данного устройства. Одно устройство может иметь один или несколько интерфейсов для обмена информацией.
UsbEndpoint Represents an interface endpoint, which is a communication channel for this interface. An interface can have one or more endpoints, and usually has input and output endpoints for two-way communication with the device.
Представляет «конечную точку» интерфейса, которая и является каналом связи для этого интерфейса. Интерфейс может иметь одну и более конечных точек, и обычно имеет конечные точки для получения информации и для ее передачи.
UsbDeviceConnection Represents a connection to the device, which transfers data on endpoints. This class allows you to send data back and forth sychronously or asynchronously.
Представляет «подключение» к данному устройству. Необходимо для передачи данных в конечную точку. Этот класс позволяет получать данные или передавать синхронно или асинхронно.
UsbRequest Represents an asynchronous request to communicate with a device through a UsbDeviceConnection.
Представляет асинхронный запрос на обмен данными с устройством через UsbDeviceConnection.
UsbConstants Defines USB constants that correspond to definitions in linux/usb/ch9.h of the Linux kernel..
Определяет константы, которые соответствуют определениям в linux/usb/ch9.h ядра Linux.

Практически во всех случаях применения USB Host API программист использует эти классы в своей работе. Алгоритм их применения выглядит примерно так: определяем устройства (цель - программный доступ к классу UsbDevice), подключенные к хосту (мобильному устройству), с помощью UsbManager. Когда программный доступ устройству получен, необходимо определить соответствующие UsbInterface и UsbEndpoint для общения с ним. Как только вы получили в свое распоряжение конечную точку, откройте UsbDeviceConnection, чтобы общаться с USB-устройством. Если конечная точка работает в режиме асинхронной передачи, используем класс UsbRequest.

Давайте попробуем со всем этим разобраться создав простое приложение, которое, используя этот API, определит подключенное к хосту с ОС Android устройство и выведет о нем некоторую информацию на экран телефона или планшета.

Создаем проект

В Eclipse проект создается с помощью пунктов меню File->New->Android Application Project. Заметим также, что код, приведенный ниже заимствован из приложений-примеров, поставляемых с Android SDK (папка android sdk samples/android-N(API Level)/USB) речь идет о программе управления USB-игрушкой Missile Launcher (см. рис. 4) Примеры приложений загружаются через Android SDK Manager (нужно отметить пункт - Samples for SDK ). В листингах, приведенных ниже, примеры кода снабжены комментариями, которые объясняют суть происходяшего.


Рис.4 Забавная игрушка "Ракетозапускалка"

Создавая проект не забудьте отметить нужный API Level в опции Minimum Requared SDK (API Level 12, соответствующий версии Android 3.1 /Honeycomb/, или выше). В проекте будет очень простой интерфейс пользователя - главное окно (Activity) и TextView для вывода информации. Подобный проект подробно рассмотрен в .

В созданном автоматически классе для Activity нашего проекта необходимо определить следующие экземпляры классов для работы с USB:

private TextView lgView;
private UsbManager mUsbManager;
private UsbDevice mDevice;
private UsbDeviceConnection mConnection;
private UsbEndpoint mEndpointIntr;

LgView = (TextView) findViewById(R.id .logTextView ) ;

и получаем доступ к классу UsbManager

MUsbManager = (UsbManager) getSystemService(Context .USB_SERVICE ) ;

Создадим еще обработчик события onResume(). Добьемся цели - чтобы информация о подключенных устройствах обновлялась при активизации окна нашего приложения (см. Листинг 1).

Листинг 1. Обработчик события onResume()

public void onResume() {
super .onResume () ;

//заполняем контейнер списком устройств
HashMap< String , UsbDevice> deviceList = mUsbManager.getDeviceList () ;
Iterator< UsbDevice> deviceIterator = deviceList.values () .iterator () ;

lgView.setText ( "Devices Count:" + deviceList.size () ) ;

while (deviceIterator.hasNext () ) {
UsbDevice device = (UsbDevice) deviceIterator.next () ;

//пример определения ProductID устройства
\n " + "Device ProductID: " + device.getProductId () ) ;
}
//определяем намерение, описанное в фильтре
// намерений AndroidManifest.xml
Intent intent = getIntent() ;
lgView.setText ( lgView.getText () + "\n " + "intent: " + intent) ;
String action = intent.getAction () ;

//если устройство подключено, передаем ссылку в
//в функцию setDevice()
UsbDevice device = (UsbDevice) intent.getParcelableExtra (UsbManager.EXTRA_DEVICE ) ;
if (UsbManager.ACTION_USB_DEVICE_ATTACHED .equals (action) ) {
setDevice(device) ;
lgView.setText ( lgView.getText () + "\n " + "UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action) is TRUE" ) ;
} else if (UsbManager.ACTION_USB_DEVICE_DETACHED .equals (action) ) {
if (mDevice != null && mDevice.equals (device) ) {
setDevice(null ) ;
lgView.setText ( lgView.getText () + "\n " + "UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action) is TRUE" ) ;
}
}

Далее, для Activity создадим функцию setDevice(), необходимую для работы с нашим устройством (см. Листинг 2). В обработчике onResume() и в функции setDevice() мы в точности выполнили алгоритм применения USB Host API, описанный в предыдущем разделе.

Листинг 2. Функция setDevice()

private void setDevice(UsbDevice device) {
lgView.setText ( lgView.getText () + "\n " + "setDevice " + device) ;

//определяем доступные интерфейсы устройства
if (device.getInterfaceCount () != 1 ) {

LgView.setText ( lgView.getText () + "\n " + "could not find interface" ) ;
return ;
}
UsbInterface intf = device.getInterface (0 ) ;

//определяем конечные точки устройства
if (intf.getEndpointCount () == 0 ) {

LgView.setText ( lgView.getText () + "\n " + "could not find endpoint" ) ;
return ;
} else {
lgView.setText ( lgView.getText () + "\n " + "Endpoints Count: " + intf.getEndpointCount () ) ;
}

UsbEndpoint epIN = null ;
UsbEndpoint epOUT = null ;

//ищем конечные точки для передачи по прерываниям
for (int i = 0 ; i < intf.getEndpointCount () ; i++ ) {
if (intf.getEndpoint (i) .getType () == UsbConstants.USB_ENDPOINT_XFER_INT ) {
if (intf.getEndpoint (i) .getDirection () == UsbConstants.USB_DIR_IN ) {
epIN = intf.getEndpoint (i) ;
lgView.setText ( lgView.getText () + "\n " + "IN endpoint: " + intf.getEndpoint (i) ) ;
}
else {
epOUT = intf.getEndpoint (i) ;
lgView.setText ( lgView.getText () + "\n " + "OUT endpoint: " + intf.getEndpoint (i) ) ;
}
} else { lgView.setText ( lgView.getText () + "\n " + "no endpoints for INTERRUPT_TRANSFER" ) ; }
}

MDevice = device;
mEndpointIntr = epOUT;

//открываем устройство для передачи данных
if (device != null ) {
UsbDeviceConnection connection = mUsbManager.openDevice (device) ;
if (connection != null && connection.claimInterface (intf, true ) ) {

LgView.setText ( lgView.getText () + "\n " + "open device SUCCESS!" ) ;
mConnection = connection;

} else {

LgView.setText ( lgView.getText () + "\n " + "open device FAIL!" ) ;
mConnection = null ;
}
}
}
}

В дополнение к приведенному коду, который, как уже наверняка догадался внимательный читатель, открывает устройство для приема-передачи данных, остается лишь задействовать протокол обмена данными, который, повторюсь, должен быть хорошо известен разработчику. Приведем лишь, как было обещано, код, который отправит HID устройству некоторый пакет данных message используя передачу по прерываниям, класс UsbRequest и соответствующую конечную точку - см. Листинг 3.

Листинг 3. Пример кода для отправки данных устройству

//определение размера буфера для отправки
//исходя из максимального размера пакета
int bufferDataLength = mEndpointIntr.getMaxPacketSize () ;

lgView.setText ( lgView.getText () + "\n " + mEndpointIntr.getMaxPacketSize () ) ;

ByteBuffer buffer = ByteBuffer.allocate (bufferDataLength + 1 ) ;

UsbRequest request = new UsbRequest() ;

buffer.put (message) ;

request.initialize (mConnection, mEndpointIntr) ;

request.queue (buffer, bufferDataLength) ;

if (request.equals (mConnection.requestWait () ) )

//отправка прошла успешно
//lgView.setText(lgView.getText() + "\n" + "sending CLEAR!!!");

catch (Exception ex)

//что-то не так...
//lgView.setText(lgView.getText() + "\n" + "sending not clear...");

Фильтрация устройств в AndroidManifest.xml

Хотя в нашем приложении нет нужды в поиске конкретного устройства с известными VID (Vendor-ID) и PID (Product-ID), инженеры Google не приводят примеров приложений без секции intent-filter в манифест файле, и автору не удалось добиться работы программы без фильтрации устройств в AndroidManifest.xml .

Напомню, что Vendor-ID и Product-ID это уникальные идентификаторы USB-устройств. То есть, используя фильтрацию, можно создать приложение, которое взаимодействует лишь с определенным устройством или каким-то классом устройств. Отметим, что производители устройств должны согласовать эти номера с организацией USB IF.

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

Листинг 4. Файл AndroidManifest.xml


" > http://schemas.android.com/apk/res/android"
> package="ru.learn2prog.usbhostexample"
android:versionCode="1"
android:versionName="1.0" >


android:minSdkVersion ="12"
android:targetSdkVersion ="14" />


android:allowBackup ="true"
android:icon ="@drawable/ic_launcher"
android:label ="@string/app_name"
android:theme ="@style/AppTheme" >

android:name ="ru.learn2prog.usbhostexample.MainActivity"
android:label ="@string/app_name" >
>

"android.intent.category.DEFAULT" />

"android.intent.category.LAUNCHER" />

>

>

>
"android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource ="@xml/device_filter" />
>
>

>

Листинг 5. Файл фильтра device_filter.xml (каталог /res/xml)

>

>

Операции по сборке и установке нашего приложения ничем не отличаются от обычных (см. примеры в , ). Хочу обратить внимание на действия фильтра намерений - при подключении устройства к хосту ОС запрашивает пользователя о запуске нашего приложения.

Литература/Ссылки: 11.
12.
13. http://developer.android.com/guide/topics/connectivity/usb/host.html - обзор классов, необходимых для работы с USB в Android
14. ссылка на исходники приложения

То, что к своему смартфону на ОС Андроид можно подключить обычную флешку, знают далеко не все пользователи. Причем обладателям топовых смартфонов эта функция может и не пригодиться, а вот тем, у кого бюджетный девайс от этого есть куча разных выгод.

Например, если у вас мало встроенной памяти, то вы можете подключить флешку и с нее просматривать фильмы или слушать музыку. Или вам нужно перекинуть с флешки на свое устройство какую-либо важную для вас информацию, а ПК под рукой нет.

В общем, применений у этой полезной "фишки" очень много и все рассматривать мы, конечно не будем. Нас больше интересует, как именно подсоединить USB-накопитель к своему гаджету.

Проверяем поддержку OTG протокола

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

Чтобы проверить поддерживает ли ваш гаджет данную технологию воспользуйтесь приложением USB OTG Checker, который можно скачать, .

USB OTG кабель

Такой кабель представляет собой "переходник" на одном конце, которого стандартный мини USB разъем для подключения смартфона, а на другом - обычный USB порт для подключения флешки. Просто соединяем оба устройства таким кабелем и больше ничего делать не нужно.


USB OTG накопитель

Еще проще, если вы заранее приобретете такую универсальную флешку, которую напрямую можно подключать как к ПК, так и к андроиду без каких-либо дополнительных "переходок".

Важно! Флешка должна быть форматирована в FAT32. Если она будет в формате NTFS, то устройство на ОС Андроид просто ее не увидит.

Заключение

На этом все: никаких сложностей с подключением USB флешки к своему девайсу у вас возникнуть не должно. Все дополнительные вопросы задавайте в комментариях, и мы обязательно ответим!

StickMount - это одно из немногих в своем роде приложений, которое служит для монтирования к портативному устройству "флешек", внешних жестких дисков и прочих накопителей. Для подключения к девайсу необходимо использовать USB-разъем, если таковой на устройстве имеется или же специальный переходник с обычного USB на более "популярный" в мобильных девайсах miniUSB. При подключении накопителя, программа самостоятельно распознает его и произведет процесс монтирования. По его завершению подключенное устройство будет отображаться в менеджере как стандартная папка под названием usbStorage. Таким образом, вы сможете работать с данными, находящимися на накопителе так, будто они записаны в память самого устройства. Точно так же можно подключить, например, фотоаппарат, другой Android-девайс и так далее.

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

Сейчас я вас научу как подключить телефон Андроид через USB к компьютеру как накопитель и таким образом включить передачу данных и перенести информацию без использования флешки. Очень удобно.

Данная статья подходит для всех брендов, выпускающих телефоны на Android 9/8/7/6: Samsung, HTC, Lenovo, LG, Sony, ZTE, Huawei, Meizu, Fly, Alcatel, Xiaomi, Nokia и прочие. Мы не несем ответственности за ваши действия.

Внимание! Вы можете задать свой вопрос специалисту в конце статьи.

Что такое режим MTP и куда делся режим USB

До версии Android 4.4 KitKat была возможность установить подключение по USB как флешку. ПК видел устройство как съемный диск и предоставлял те же права: пользователь мог , и совершать другие действия.

Затем в новых версиях Андроид режим USB был заменен на MTP, в котором осталась только функция переноса данных, а то же форматирование не работает.

Настройка подключения телефона к ПК по USB

Чтобы управлять подключением к компьютеру через USB, необходимо . Для этого добавляем в настройки Android раздел «Для разработчиков» (если его нет):

  1. Откройте настройки.
  2. Перейдите в раздел «О телефоне» или «Об устройстве».
  3. «Номер сборки» или «Версия MIUI».
  4. Нажимайте (кликайте) на этот пункт до тех пор, пока не увидите сообщение, что вы стали разработчиком (обычно хватает 7-10 нажатий).
Увеличить

После появления в настройках раздела для разработчиков можно включить отладку по USB. Пункт так и называется, так что вам нужно лишь передвинуть ползунок в положение «Включено» и подтвердите разрешение.


Увеличить

Теперь можно подключать устройство к компьютеру через USB и выбирать режим работы. В последних версиях Android наиболее используемыми являются:

  • MTP - передача любых файлов с компьютера на телефон и наоборот.
  • PTP - передача фотографий, а также перенос файлов, не поддерживаемых в режиме MTP.
  • Только зарядка.

Подключение в режиме USB-накопителя

Если вы не может привыкнуть работать с медиапроигрывателем, вернитесь к использованию режима USB-накопителя. Для этого понадобится:

  • Установленная программа USB MASS STORAGE Enabler.

Применение этого метода может привести к повреждению системных файлов. В таком случае вам придется перепрошивать Android.

Чтобы Android подключался к компьютеру как накопитель:

  1. Запустите USB MASS STORAGE Enabler.
  2. Предоставьте права суперпользователя и согласитесь на изменение работы Selinux.
  3. Если устройство поддерживается, откроется основное меню приложения.
  4. Нажмите «Включить USB MASS STORAGE».

Увеличить

Теперь при подключении к ПК телефон или планшет будет отображаться как накопитель. Чтобы подключиться в режиме MTP или PTP, достаточно перезапустить устройство. После завершения работы с режимом накопителя снова зайдите в приложение и отключите USB MASS STORAGE.

Несмотря на поддержку Android-смартфоном или планшетом SD-карт до 32 ГБ, иногда нужно подключать внешние «хранилища» - переносные жёсткие диски и флешки.

Суть проблемы с USB-Flash накопителями на устройствах с Android

Современные Flash-накопители имеют ёмкость до 128 ГБ. Такой объём памяти - не лишний, особенно когда владелец смартфона или планшета качает и раздаёт сразу много фильмов, музыки, программ и т. п. Нужен дополнительный объём памяти. Суть проблемы в следующем.

  • В каждый гаджет больше одной SD-карты не установишь - это не SIM-карты, слот под SD-карту в смартфоне или планшете всего один. Устройства с двумя microSD-слотами - большой вопрос. Карт памяти объёмом в терабайт и более также нет, всё это - дело будущего.
  • Перекачивать свой контент с устройства на «облако» и обратно удаётся не всегда: мобильный интернет не полностью безлимитный, а искать Wi-Fi по городу или «привязываться» к роутеру с интернетом от «Ростелекома» дома и на работе - тоже не вариант.
  • Непрерывно обмениваясь десятками гигабайт трафика в день в сотовых сетях и по Wi-Fi, смартфон или планшет потребляет много энергии. Для подзаряда гаджета нужна розетка или мощный PowerBank с аккумулятором ёмкостью в 10 и более ампер-часов. В общем, надо где-то хранить всё своё «накачанное» добро, оставаясь при этом по-прежнему мобильным и свободным в выборе.
  • Для этого и нужно подключение по microUSB дополнительных «флешек». Идеальный вариант для тех, кто часто ездит в командировки или путешествует - носить в сумке планшет и несколько «флешек» 32–128 ГБ.

    Как подключить флешку к Андроид-гаджету по OTG

    OTG - это переходник USB-microUSB, замена USB-кабелю с устройством Card Reader. Занимает мало места - не больше стандартной флешки. При этом флешка должна быть отформатирована в FAT32 - с файловой системой NTFS у операционной системы Android пока не всё гладко.

    Есть и более трудный путь: установить специальное Android-приложение, позволяющее смартфону или планшету работать с NTFS-носителями. Так, это могут быть exFAT/NTFS для Total Commander, Paragon NTFS & HFS+ и их аналоги.

  • Переходник OTG должен иметь разъём USB - под штекер флешки. Именно такой вам и нужен. Большинство современных Android-устройств имеют разъём не miniUSB, а именно microUSB. Найдите в магазине OTG-переходник нужного стандарта. Переходник OTG встречается как в виде цельного устройства, так и в виде специального microUSB-кабеля.

    Вам нужен OTG именно с гнездом, а не со штекером под USB-накопители

  • После подключения флешки запустите «Диспетчер файлов» на вашем устройстве - по адресу ‘/sdcard/usbStorage’ должно отобразиться её содержимое.

    Выберите папку USBdisk

  • Если флешка не читается - нужны специальные Android-приложения. Некоторые из них требуют Root-права.

    Как получить Root-доступ

    Приложения, позволяющие получить Root-доступ без помощи компьютера: FramaRoot, Universal Androot, Visionary+, GingerBreak, z4root, BaiduRoot, Romaster SU, Towelroot, RootDashi, 360 Root и др.

    Приложения, «взламывающие» Root посредством ПК: SuperOneClick, Unrevoked, GenoTools, vRoot, MTKDroidTools и пр.

    Помните, что, получая права Root, вы теряете гарантию фирмы-поставщика и рискуете навредить своему гаджету.

    Другой способ - сменить лицензионную прошивку Android на «кастомную» с непривязанным Root-доступом.

    Просмотр содержимого флешки на смартфоне или планшете Android с помощью сторонних приложений

    Приложение USB Media Explorer

    Желающим упростить процесс доступа к флешке подойдёт платное приложение USB Media Explorer. Старое название программы - Nexus Media Importer; оно разрабатывалось вначале для гаджетов Nexus, но быстро расширило линейку поддерживаемых смартфонов и планшетов на базе Android. Root-права не нужны, программа платная.

    Если вам это решение не подошло - придётся слегка потрудиться.

    Решения на базе программы StickMount

    Приложение StickMount является одним из самых известных, требует Root-права. Работает в связке с любым файл-менеджером Android, например, ES Проводник. Оба приложения есть в Play Market.

  • После установки откройте StickMount, подключите свою флешку и подтвердите запрос на автозапуск StickMount при подключении флешек.

    Подтвердите запрос

  • Вторым запросом будет вопрос приложения StickMount о Root-привилегиях в системе Android. Подтвердите, нажав кнопку Grant. Не ставьте «галку» напротив «Спросить меня ещё раз в будущем».

    Подтвердите, нажав клавишу Grant

  • В строке уведомлений (вверзу) появится предупреждение о том, что содержимое флешки располагается по адресу ‘/sdcard/usbStorage/’ — теперь откройте приложение «ES Проводник».

    Отображение информации о загруженности флешки

  • Флешка доступна для чтения/записи.

    Все ваши файлы теперь доступны

    Подключение USB-флешек к устройствам, не имеющим miniUSB/microUSB

    Ряд фирм, не таких известных, как ZTE, Huawei, Sony и других их конкурентов, устанавливает нетиповые интерфейсные разъёмы. Переходники OTG с miniUSB/microUSB абсолютно не пригодны для гаджетов с узкостандартизированным разъёмом без специального OTG-переходника. Поищите на том же Ebay или AliExpress OTG-переходник, соответствующий стандарту интерфейсного гнезда вашего смартфона или планшета. Дальнейшие действия к получению программного доступа к вашим флешкам такие же.

    Прочие способы подключить флешку к Android-смартфону или планшету

    Есть следующие способы:

  • Подключить и планшет/смартфон, и флешку к ПК.
  • Подключить флешку к смартфону/планшету через специальное устройство - CarsReader. Подходит владельцам SD/MiniSD-карт, флеш-памяти стандарта USB MemoryStick.
  • Подключение карт-памяти microSD через специальный переходник, имеющий USB-штекер - аналог обычной USB-флешки.
  • Видео: Подключение дополнительных устройств к смартфону и планшету, включая флеш-носители: проблемы и решения

    Подключая флешки и другие накопители к смартфону или планшету на базе Android, вы развязываете себе руки в вопросе об организации хранения носимых с собой данных. Это может существенно пригодиться вам в командировках и в путешествиях. Удачи!