Доступ к файлам USB-накопителя в моем приложении для Android

Как я могу получить доступ к файлам на USB-накопителе из моего приложения для Android. Устройство не рутировано. Я не хочу использовать структуру доступа к хранилищу. Можно ли получить путь к файлу с помощью API-интерфейсов Android USB Host. В устройствах Nexus и многих других поставщиков USB-накопитель не является подключенным хранилищем, поэтому к нему нельзя получить обычный доступ.


person Praveen Pandey    schedule 25.05.2016    source источник
comment
Требования и ограничения этого уже неоднократно рассматривались ранее.   -  person Chris Stratton    schedule 25.05.2016
comment
Используйте структуру доступа к хранилищу для API-интерфейсов ›19. По API‹ см. Старые вопросы, которые уже задавались здесь. USB Host Apis вас не спасет.   -  person petey    schedule 25.05.2016
comment
@Chris: Не могли бы вы поделиться ссылкой, где есть правильный ответ. Я не могу найти работоспособного ответа.   -  person Praveen Pandey    schedule 25.05.2016
comment
@petey: спасибо за ваш комментарий. На самом деле я не хочу использовать SAF, потому что это повлияет на некоторые функции моего приложения. Мне нужно другое решение. Я вижу, что ES File Explorer может отображать файлы из USB-хранилища, и они не используют SAF. Мне интересно, какие API они использовали.   -  person Praveen Pandey    schedule 25.05.2016
comment
Выполнено. Имейте в виду, что stackoverflow предназначен для конкретных вопросов. Он явно не должен использоваться для запроса кода для использования в проекте, а для доступа к запоминающему устройству через apis хоста потребуется много кода внутри вашего приложение.   -  person Chris Stratton    schedule 25.05.2016
comment
@Chris: некоторые недоразумения, если вы можете уточнить. Когда подключен перьевой накопитель otg, я увидел, что мобильные телефоны LG отображают содержимое как обычную SD-карту в своей галерее и другом приложении. Немногие другие мобильные устройства обнаруживают его как внешнее хранилище, когда, но не отображают содержимое в галерее. И все остальные тоже не обнаруживаются как внешнее хранилище. Не могли бы вы объяснить это?   -  person Praveen Pandey    schedule 23.06.2016
comment
Как объясняется по ссылке, Android не поддерживает это, но, предположительно, несмотря на то, что данный производитель устройства может добавлять нестандартные возможности к конкретному устройству.   -  person Chris Stratton    schedule 23.06.2016


Ответы (1)


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

Эти кабели можно приобрести во многих интернет-магазинах.

Короткий ответ: нет, только ваше приложение не может получить доступ к USB-устройству.

person Justin Pearce    schedule 25.05.2016
comment
Да, я использую только USB-накопитель OTG. ES File Explorer может обнаружить мой флеш-накопитель. Таким образом, мое приложение также должно иметь возможность читать и перечислять файлы, хотя я не могу найти, как заставить его работать. - person Praveen Pandey; 25.05.2016
comment
@PraveenPandey Первая ссылка в моем ответе, касающаяся USB-хоста, идет на Android API для обработки режима USB-хоста. В нем может быть вся необходимая информация. - person Justin Pearce; 25.05.2016
comment
Джастин, я через это прошел. Но здесь нет никакой информации о том, как вывести список файлов. - person Praveen Pandey; 25.05.2016
comment
Действительно, API-интерфейсы хоста ничего не знают о протоколе запоминающего устройства или файловых системах. - person Chris Stratton; 25.05.2016