Воспроизведение mp3 в программе, способной это сделать(файловый менеджер)

Здравствуйте, уважаемые форумчане, я недавно пополнил ряды новичков в программировании под android и решил запрограммировать файловый менеджер, чтобы закрепить некоторый материал(работа со списками + намерения). И все шло хорошо пока я не начал программировать открытие файлов. Беда заключается именно в открытии аудио файлов, все другие типы файлов открываются более-менее адекватно. Я перепробовал три способа, которые смог найти в интернете, но результат тот же(не может найти программу для воспроизведения музыки). Возможно мой проигрыватель использует другое намерение,? Или с аудио файлами все очень сложно? Другой файловый менеджер без проблем открывает аудио файлы в моем проигрывателе(тестил на реальном устройстве).

Вот код(работал в Android Studio):

JavaВыделить код

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

 private void openFile(String file){
       /для всех вариантов
        String type;
        MimeTypeMap mime = MimeTypeMap.getSingleton();
 
        int index = file.lastIndexOf(".");
        type = mime.getMimeTypeFromExtension(file.substring(index + 1).toLowerCase());
        
        Вариант первый
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.parse(file), type);
        
        Вариант второй(работает не адекватно если не положить тип)
        Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("file://" + file));
        intent.setType(type);
        
        
        Для всех вариантов:
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(Intent.createChooser(intent, "Выбор программы"));/
 
        //Вариант третий(работает так же, как и первый, но смотрится длиннее)
        Intent intent = new Intent(Intent.ACTION_VIEW);
 
        if (file.contains(".doc") || file.toString().contains(".docx") ||file.toString().contains(".odt")) {
            // Word document
            intent.setDataAndType(Uri.parse(file), "application/msword");
        } else if (file.toString().contains(".pdf")) {
            // PDF file
            intent.setDataAndType(Uri.parse(file), "application/pdf");
        } else if (file.toString().contains(".ppt") || file.toString().contains(".pptx")) {
            // Powerpoint file
            intent.setDataAndType(Uri.parse(file), "application/vnd.ms-powerpoint");
        } else if (file.toString().contains(".xls") || file.toString().contains(".xlsx")) {
            // Excel file
            intent.setDataAndType(Uri.parse(file), "application/vnd.ms-excel");
        } else if (file.toString().contains(".zip") || file.toString().contains(".rar")) {
            // ZIP Files
            intent.setDataAndType(Uri.parse(file), "application/zip");
        } else if (file.toString().contains(".rtf")) {
            // RTF file
            intent.setDataAndType(Uri.parse(file), "application/rtf");
        } else if (file.toString().contains(".wav") ||file.toString().contains(".mp3")) {
            // WAV audio file
            intent.setDataAndType(Uri.parse(file), "audio/x-wav");
        } else if (file.toString().contains(".gif")) {
            // GIF file
            intent.setDataAndType(Uri.parse(file), "image/gif");
        } else if (file.toString().contains(".jpg") || file.toString().contains(".jpeg") || file.toString().contains(".png")) {
            // JPG file
            intent.setDataAndType(Uri.parse(file), "image/jpeg");
        } else if (file.toString().contains(".txt")) {
            // Text file
            intent.setDataAndType(Uri.parse(file), "text/plain");
        } else if (file.toString().contains(".3gp") || file.toString().contains(".mpg") || file.toString().contains(".mpeg") || file.toString().contains(".mpe") || file.toString().contains(".mp4") || file.toString().contains(".avi")) {
            // Video files
            intent.setDataAndType(Uri.parse(file), "video/");
        } else {
            intent.setDataAndType(Uri.parse(file), "/");
        }
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }