Como obter o caminho SD_Card no android6.0 programaticamente

Estou tentando verificar se o dispositivo possui armazenamento externo ou não, usando o caminho de armazenamento externo como o indicado abaixo

 if (new File("/ext_card/").exists()) {
        specialPath = "/ext_card/";
    } else if (new File("/mnt/sdcard/external_sd/").exists()) {
        specialPath = "/mnt/sdcard/external_sd/";
    } else if (new File("/storage/extSdCard/").exists()) {
        specialPath = "/storage/extSdCard/";
    } else if (new File("/mnt/extSdCard/").exists()) {
        specialPath = "/mnt/extSdCard/";
    } else if (new File("/mnt/sdcard/external_sd/").exists()) {
        specialPath = "/mnt/sdcard/external_sd/";
    } else if (new File("storage/sdcard1/").exists()) {
        specialPath = "storage/sdcard1/";
    }

Mas no marshmallow eu não encontrei esse caminho e, enquanto verifica usando o ES FILEMANAGER, eles dão como storage / 3263-3131 no Moto G de terceira geração. Enquanto verifica outros dispositivos de marshmallow, esses números são diferentes. Por favor, ajude-me a verificar se o dispositivo marshmallow tem armazenamento externo ou não? e se o armazenamento encontrado significa como obter o caminho desse armazenamento externo?

Nota: - Eu dei permissão para armazenamento no meu aplicativo e também habilitei a permissão de armazenamento nas configurações do meu aplicativo.

Agradecemos antecipadamente e você encontrou algum erro na minha pergunta, por favor. obrigado novamente.

questionAnswers(3)

yourAnswerToTheQuestion