По какой-то причине, listFiles() возвращает null даже если File распознан как допустимый каталог. Я не очень хорошо знаком с поведением файловой иерархии Android, поэтому я бы предположил, что проблема кроется именно в этом.
Для справки, я выполняю отладку на своем Moto X, и результаты одинаковы независимо от того, подключен телефон к моему компьютеру или нет - так что я не думаю, что это имеет отношение к монтированию при подключении.
Переведено автоматически
Ответ 1
Для тех, у кого есть эта проблема, добавьте это в AndroidManifest.xml:
В любом случае, комментарий zapl довольно короткий, но весьма содержательный. Вы можете "ls -ld" указать каталог на устройстве (через "adb shell" или некоторые другие оболочки). Если у вас есть разрешение "r" для каталога, вы можете вызвать listFiles() . В противном случае он возвращает null. Обратите внимание, что вы можете получить доступ к файлам в нечитаемом каталоге, если вы знаете имена файлов и имеете разрешение "x" для каталога. Вы можете узнать, кто вы, с помощью команд "whoami" и "groups".
Ответ 3
Для Android версии 23 или выше вам необходимо предоставить разрешение на время выполнения программно в методе onresume, как показано ниже,