2016-11-07 2 views
0

Мой вопрос должен быть простым, но я много ищу из Интернета, не могу найти ответ.Съемный доступ к хранилищу в Android с API NDK

я мог бы получить путь вторичного съемного запоминающего устройства (SDCard) с ниже код

String ExternalSdcardPath = System.getenv("SECONDARY_STORAGE") + "/Sample/"; 

и я мог бы получить этот путь,/хранение/external_sd/образец/

и я попытался создать файл с NDK API (FOPEN (ExternalSdcardPath, "а +");)

, но я не мог создавать и читать файл с Еореп ..

пожалуйста, вы можете сказать мне, как с обновить и прочитать файл с помощью fopen api на съемном пути (secondary_storage)?

ответ

2

я мог бы получить путь вторичного съемного запоминающего устройства (SDCard) с кодом ниже

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

Я не мог создавать и читать файл с FOPEN

Вы не имеют прямой доступ к файловой системе в произвольных местах на съемном носителе на Android 4.4 и выше.

Не могли бы вы рассказать мне, как создать и прочитать файл с помощью fopen api на сменном пути (secondary_storage)?

Ваши единственные места для прямого доступа к файловой системе для сменных устройств хранения в местах, возвращенных getExternalFilesDirs(), getExternalCacheDirs() и getExternalMediaDirs(). Все эти методы относятся к Context (например, к действию или услуге). Если они возвращают значения 2+, вторая и последующая находятся на съемном носителе. Ваш код Java может предоставить эти пути вашему NDK-коду.

+0

Благодарим вас за ответ! Я тестировал то, что вы сказали, и мог получить удаленный путь (File [] files = getExternalFilesDirs ("") и string path = files [1] .getAbsolutePath(), sdcard/Android/data/my package folder) и создать файл в съемном хранилище pacakge с моим кодом NDK. Должен ли я получить доступ и написать и прочитать разрешение на другой путь, sdcard/test_folder (не папка пакета)? –

+0

@ Ji.Hoon.Kim: Как я писал в своем ответе, у вас нет прямого доступа к файловой системе в произвольные местоположения на съемном носителе (например, какой бы 'sdcard/test_folder' не предполагалось) на Android 4.4+. – CommonsWare

+0

У меня есть прямой доступ файловой системы к произвольным местоположениям на съемном носителе с SAF (DocumentFile API, Android 5.0.1+, Lollipop). Могу ли я использовать SAF без SAF Google UI на Android 5.0.1+? –

Смежные вопросы