Получите доступное место на подключенном USB-накопителе через USB OTG.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Получите доступное место на подключенном USB-накопителе через USB OTG.

Сообщение Anonymous »

С помощью StorageManager мы можем получить доступ к съемным флэш-накопителям, подключенным через USB OTG, к смартфонам Android:

Код: Выделить всё

val storageManager = context.getSystemService(Context.STORAGE_SERVICE) as StorageManager
storageManager.storageVolumes
.forEach { volume ->
Timber.d("uuid: ${volume.uuid}, storageUuid: ${volume.storageUuid}, path: ${volume.directory}, desc: ${volume.getDescription(context)}, state: ${volume.state}, isDir: ${volume.directory?.isDirectory}, isRemovable: ${volume.isRemovable}\nallocatedBytes: ${volume.storageUuid?.let { storageManager.getAllocatableBytes(it) }}")
}
Например:
Встроенное/внутреннее основное хранилище №1:

Код: Выделить всё

uuid: null
storageUuid: 41217664-9172-527a-b3d5-edabb50a7d69
path: /storage/emulated/0
desc: Internal storage
state: mounted
isDir: true
isRemovable: false
allocatedBytes: 33695051776
USB-накопитель №2:

Код: Выделить всё

uuid: 8013-83C4
storageUuid: null
path: /mnt/media_rw/8013-83C4
desc: ESD-USB
state: mounted
isDir: false
isRemovable: true
allocatedBytes: null // because storageUuid is null here
Мы не можем получить свободное место из тома EsdUsb.directory:
#1 с помощью StatFs будет исключение:

Код: Выделить всё

val stats = StatFs(volumeEsdUsb.directory.absolutePath)
val freeSpace = stats.availableBlocksLong * stats.blockSizeLong
java.lang.IllegalArgumentException: неверный путь:
/mnt/media_rw/8013-83C4 в android.os.StatFs.doStat(StatFs. java:53)
at android.os.StatFs.(StatFs.java:43)

#2 с томомEsdUsb.directory.usableSpace< /code> он просто возвращает 0
Есть ли какое-нибудь другое решение, чтобы получить свободное место на флешке Или в Android нет ничего подобного для USB-флешек из box?
При использовании Storage Access Framework вообще нет никакой информации о каком-либо томе хранилища, мы можем просто получить TreeUri и использовать его с Document работать с файлами (создавать, редактировать, удалять, перемещать, копировать)

Подробнее здесь: https://stackoverflow.com/questions/774 ... gh-usb-otg
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Портативная IDE и компилятор C# — все, что для этого требуется, должно находиться на USB-накопителе.
    Anonymous » » в форуме C#
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Как получить доступ к устройству USB через USB-OTG в приложении QT 6.9 Android?
    Anonymous » » в форуме Android
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как получить доступ к устройству USB через USB-OTG в приложении QT 6.9 Android?
    Anonymous » » в форуме C++
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как получить доступ к устройству USB через USB-OTG в приложении QT 6.9 Android?
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как получить доступ к устройству USB через USB-OTG в приложении QT 6.9 Android?
    Anonymous » » в форуме C++
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»