Android Приложение Specifi c Файлы и общее хранилище - PullRequest
0 голосов
/ 16 января 2020

Я всегда думал, что следующий код хранит мои файлы документов в мобильном хранилище ВНУТРЕННИЙ , пока я не понял, что переменная 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 разных типа хранилища, как следующий:

Вот мой вопросы:

  1. Согласно официальной документации ...

Когда пользователь удаляет ваше приложение, файлы, сохраненные в приложении, 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...