Создан каталог Android, но он не виден через USB-соединение ПК

Мой код создает файл .csv в определенном каталоге, который я хочу видеть на ПК при доступе к хранилищу телефона с помощью USB-кабеля.

private final String SPECTRA_CSV_DIRECTORY = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "Spectra_Logs";

 public void saveMeasurementToFiles(String[] data) { //ADHI 1.4.4

    if (isExternalStorageWritable()) {
        if (directoryExists(SPECTRA_CSV_DIRECTORY)) {
            try {
                File spectraLog = new File(createCSVFileName(0));
                spectraLog.createNewFile();
                FileOutputStream fos = new FileOutputStream(spectraLog, true);

                for (int i = 0; i < data.length; i++)
                    fos.write((data[i] + System.getProperty("line.separator")).getBytes());

                fos.close();
            }
            catch (FileNotFoundException e) {
                messageLogger.saveErrorToFile(SmartUtilities.getStackTrace(e), "CSV_Save_Error");
                Toast.makeText(this, "CSV Save: Error accessing file", Toast.LENGTH_SHORT).show();
            }
            catch (IOException e) {
                messageLogger.saveErrorToFile(SmartUtilities.getStackTrace(e), "CSV_Save_Error");
                Toast.makeText(this, "CSV Save: Error with data stream", Toast.LENGTH_SHORT).show();
            }
            catch (Exception e) {
                messageLogger.saveErrorToFile(SmartUtilities.getStackTrace(e), "CSV_Save_Error");
                Toast.makeText(this, "CSV Save: Unknown error occurred, check error logs", Toast.LENGTH_SHORT).show();
            }
        }
    }
}

Ниже приведен код вызываемых методов, чтобы у вас было представление о том, что делает этот код.

private boolean directoryExists(String path) {
    try {
        File folder = new File(path);
        boolean exists = folder.exists();

        // Check if exists, if not; create it
        if (!exists)
            exists = folder.mkdirs();

        // Check if successful
        if (exists) {
            Log.d("FILE IO:", "Spectra directory found or created successfully");
            return true;
        }
        else {
            Log.d("FILE IO ERROR:", "Spectra directory missing - cannot be resolved.");
            Toast.makeText(this, "Error: Spectra directory missing - cannot be resolved.", Toast.LENGTH_LONG);
            return false;
        }
    }
    catch (Exception e) {
        Log.d("FILE IO ERROR:", "Problem saving spectra csv to storage");
        Toast.makeText(this, "Error saving spectra csv to storage.\n\n" + e.toString(), Toast.LENGTH_LONG);
        return false;
    }
}

Я рутировал свой телефон и могу использовать корневой браузер, чтобы просмотреть каталог, где он должен быть (я полагаю), и открыть файлы .csv с помощью текстового редактора. Путь к каталогу следующий:

хранилище/эмуляция/0/Spectra_Logs

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

Итак, мой первый вопрос: почему они не видны на ПК?

Второй вопрос: как сделать их видимыми?


person Adam Higgins    schedule 26.08.2019    source источник


Ответы (1)


Я нашел решение проблемы для тех, кто сталкивается с тем же.

  • отключить телефон от компьютера
  • перейдите в --- настройки > приложения > информация о приложении
  • используйте параметры для отображения системных приложений
  • настройки> приложения> информация о приложении (системные приложения)> внешнее хранилище> данные приложения> хранилище
  • затем нажмите очистить данные
  • перейдите в --- настройки > приложения > информация о приложении
  • используйте параметры для отображения системных приложений
  • настройки> приложения> информация о приложении (системные приложения)> хранилище мультимедиа> данные приложения> хранилище
  • затем нажмите очистить данные
  • перезагрузить телефон
  • подключите телефон обратно к компьютеру
  • настроить телефон на передачу файлов (mtp)
  • обновленные/новые папки должны быть видны

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

person Adam Higgins    schedule 28.08.2019