Я всегда думал, что следующий код хранит мои файлы документов в мобильном хранилище ВНУТРЕННИЙ , пока я не понял, что переменная state
всегда возвращается как смонтированный , затем я понял, что был совершенно неправ , Документы хранятся в хранилище " ВНЕШНЕЕ ". При этом это внешнее хранилище необязательно означает съемную / SD-карту. На самом деле это хранилище моего мобильного телефона (например, 64 ГБ для мобильного хранилища) (Пожалуйста, исправьте меня, если я ошибаюсь)
String state = Environment.getExternalStorageState();
File path = (Environment.MEDIA_MOUNTED.equals(state)) ?
new File(Environment.getExternalStorageDirectory(), options.getString(DIRECTORY)) :
new File(mReactContext.getFilesDir(), options.getString(DIRECTORY));
Я знаю, что это 2 разных типа хранилища, как следующий:
Вот мой вопросы:
- Согласно официальной документации ...
Когда пользователь удаляет ваше приложение, файлы, сохраненные в приложении, Speci c хранилище удалено.
... Глядя на мой код, мое приложение хранит документы, используя getExternalStorageDirectory()
, разве это не означает, что все документы хранятся в app-SpeciI c хранилище? Потому что, когда я пытаюсь удалить свое приложение, папка не удаляется. Почему это так?
(Вот путь к каталогу / storage / emulated / 0 / myFiles , кстати)
Если я прав, вопрос № 1 на самом деле не хранится в хранилище с указанием приложения c, вместо этого он хранится в Shared Storage (который, я думаю, также рассматривается как внешнее хранилище) ?). Однако, если взглянуть на ссылку Shared Storage, которой я сейчас поделился сверху, не должен ли мой код использовать ACTION_CREATE_DOCUMENT
для создания и сохранения нового документа?
Храним ли мы обычно файлы во Внутреннем хранилище или Внешнем (SD, несъемное хранилище)? Здесь я имел в виду несъемное хранилище: внутреннее хранилище на вашем мобильном телефоне (например, 64 ГБ встроенной памяти моего мобильного телефона) Ссылка на объяснение здесь .
Подпункт: Кажется, что существует всего 4 метода, которые мы можем использовать для хранения Обзор хранения данных и файлов
Более подробная информация приведена ниже:
file_paths. xml
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="myFiles" path="." />
</paths>
AndroidManifest. xml
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>