Eclipse上成功的代码,全盘照搬到AS上,找不到SDCard上的音乐文件

Windows电脑上使用Eclipse + JDK1.7 + SDK17
Mac电脑上使用Android Studio + JDK1.8 + SDK23

在Windows的Eclipse上成功的代码,可以成功读取到SDCard上的音乐,但在Mac的Android Studio上却返回空数组,上网查了很多资料,都无解,先谢谢各位了。

private void loadData() {
    // 获取歌曲列表
    musics = new ArrayList<Music>();
    // 1. 检查sdcard是否可用
    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
        // 2. 获取sdcard下Music文件夹的File对象
        File musicDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
        // 3. 检查Music文件夹是否存在
        if (musicDir.exists()) {
            // 4. 通过File类的listFiles()方法,获取Music文件夹下所有子级File对象
            File[] files = musicDir.listFiles();
            // 5. 检查获取到的File列表是否有效(数组是否为null,或数组长度是否为0)
            if (files != null && files.length > 0) {
                // 6. 遍历File列表
                for (int i = 0; i < files.length; i++) {
                    // 6.1. 通过File类的isFile()方法,检查是否是文件
                    if (files[i].isFile()) {
                        // 6.2.
                        // 通过File类的getName()方法获取文件名,结合String类的endsWith()方法,检查是否是mp3文件
                        String fileName = files[i].getName();
                        if (fileName.toLowerCase(Locale.CHINA).endsWith(".mp3")) {
                            // 6.3. 创建Music对象,并封装必要的属性
                            Music music = new Music();
                            music.setTitle(fileName.substring(0, fileName.length() - 4));
                            music.setPath(files[i].getAbsolutePath());
                            // 6.4. 将新创建的Music对象添加到集合中
                            musics.add(music);
                        }
                    }
                }
            }
        }
    }
2016-05-09 20:16 添加评论 分享
已邀请:

最佳回复

1

ivanhan0511 - 电子转软件,痛苦并快乐着

赞同来自: ask

该问题暂且结束吧。
华为荣耀6P + MacOSX10.11.4 + JDK1.8 + AS2.0 + SDK23
魅蓝2 + MacOSX10.11.4 + JDK1.8 + AS2.0 + SDK23

魅蓝2 + Windows7 + JDK1.7 + Eclipse + SDK17
均测试过,没有问题。
推测是AS的模拟器或者是老的adb问题?
0

ivanhan0511 - 电子转软件,痛苦并快乐着

赞同来自:

以下是Manifest文件内容:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.abc.musicplayerv10">

<uses-permission-sdk-23 android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission-sdk-23 android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission-sdk-23 android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

要回复问题请先登录注册

退出全屏模式 全屏模式 回复