Não é possível criar pasta no armazenamento externo no android

Meu telefone de desenvolvimento é umNexus 5, corridaAndroid 4.4.2.

No meu aplicativo, estou tentando criar uma pasta no armazenamento externo que armazene informações de depuração para o meu aplicativo. Basicamente, ele conterá todos os comandos executados pelo aplicativo, para que, quando um usuário encontre um problema, eu tenha a opção de enviar as informações da pasta de depuração para análise.

Comecei tentando gravar um arquivo na pasta, mas descobri que havia um erro ao criar a pasta. No começo eu estava usandomkdir(), então eu mudei paramkdirs() o que também não funcionou.

eu tenho<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> no meu manifesto.

Aqui está o código para criar a pasta:

    File folder = new File(Environment.getExternalStorageDirectory() + "/DebugData");

    String path = folder.getPath();

    if(!folder.mkdirs() || !folder.exists()){        
            Log.e(LOG_TAG, path + " failed");
        } else {
            Log.d(LOG_TAG, path + " succeeded");
        } 

Aqui está o que eu também tentei:

    //Check SD card state
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state) || !Environment.MEDIA_MOUNTED.equals(state)) {
        Log.e(LOG_TAG, "Error: external storage is read only or unavailable");
    } else {
        Log.d(LOG_TAG, "External storage is not read only or unavailable");
    }

Isso retorna que o armazenamento externo énão somente leitura ou indisponível.

Eu também tentei caminhos diferentes, comoFile folder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Folder1");

Foi aqui que ficou realmente confuso.

Eu tentei o desenvolvimento em telefones diferentes. Em primeiro lugar, peguei umGalaxy S4 GT-i9505 corridaAndroid 4.2.2 e funcionou. Consegui criar as pastas e escrever nelas. Isso me mostrou que o código estava funcionando. Além disso, o caminho retornado executando o código no S4 e no Nexus 5 era o mesmo.

Então eu pensei que pode ser específico para a versão android. Então eu peguei umNexus 4 comAndroid 4.4.2 e o código funcionou nele também. Criou as pastas e me permitiu escrever para elas.

Nenhum dos telefones está enraizado e é padrão de estoque. Não há aplicativos especiais ou qualquer coisa que eu possa pensar nas configurações no Nexus 5 que causariam problemas de permissão. A conexão está configurada para Dispositivo de mídia (MTP).

EDITAR:

Devo acrescentar que tentei o seguinte que também não funcionou:

Gravando um arquivo no diretório raiz do armazenamento externoCriando o arquivo no diretório raiz do armazenamento externo e gravando neleCriando uma pasta em um caminho descrito e gravando um arquivo nelaCriando o arquivo no caminho descrito e gravando nele

Estou confuso sobre o que está causando isso. Existe algo mais que eu possa testar ou alterar para corrigir o problema?

EDIT 2:

Acontece que o problema se deveu à indexação.

Basicamente, todos os outros dispositivos em que testei me permitiram reconectar a conexão USB e visualizar os arquivos e pastas criados.

Por alguma razão, meu Nexus 5 não indexa as pastas / arquivos, mesmo que eles existam.

Eu baixei um aplicativo explorador de arquivos de terceiros diferente e notei que todas as pastas e arquivos estavam lá.

Então, para visualizar essas pastas e arquivos via depuração USB, preciso reiniciar o telefone para indexá-los novamente, o que parece bastante irritante, mas é melhor do que não está funcionando.

Obrigado.

questionAnswers(7)

yourAnswerToTheQuestion