android 音乐播放器 获取sd卡所有音乐文件,Android Studio音乐播放器无法读取SD卡,只有内部存储器...
时间: 2024-03-18 22:39:52 浏览: 148
sd.rar_sd卡 avr
获取SD卡所有音乐文件可以使用以下代码:
```java
public ArrayList<File> findSongs(File file) {
ArrayList<File> songs = new ArrayList<>();
File[] files = file.listFiles();
for (File currentFile : files) {
if (currentFile.isDirectory() && !currentFile.isHidden()) {
songs.addAll(findSongs(currentFile));
} else {
if (currentFile.getName().endsWith(".mp3")) {
songs.add(currentFile);
}
}
}
return songs;
}
```
其中,`file` 参数为 SD 卡的根目录,函数返回一个 List,包含了 SD 卡中所有的 mp3 文件。
至于 Android Studio 音乐播放器无法读取 SD 卡的问题,可能是因为没有获取 SD 卡读写权限的原因。可以在 AndroidManifest.xml 文件中添加以下代码:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
同时,在 Android 6.0 及以上版本中,需要动态获取 SD 卡读写权限,可以使用以下代码:
```java
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);
}
```
其中,`MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE` 为自定义的请求码,需要在 `onRequestPermissionsResult` 中进行处理。
希望以上内容对您有所帮助!
阅读全文