android 扫描SD卡中的所有.mp3文件

2023-12-03

我正在尝试扫描 SD 卡中的所有 .mp3 文件并保存其名称。 这是负责此操作的代码片段。 1.我做错了什么? 1. SD卡 /mnt/sdcard 或 /sdcard 哪个是正确的路径?

public class PlayerActivity extends Activity
{

    public void onCreate(Bundle savedInstanceState)
    {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.player_activity); 
    }
    public class SongsManager 
    {
        // SDCard Path
        //final String MEDIA_PATH = new String(MediaStore.Audio.Media.getContentUri("external").toString());
        private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();

        public SongsManager()
        {

        }

        public ArrayList<HashMap<String, String>> getPlayList()
        {
         //   File home = new File(MEDIA_PATH);
            File home = Environment.getExternalStorageDirectory();

            if (home.listFiles(new FileExtensionFilter()).length > 0) 
            {

                for (File file : home.listFiles(new FileExtensionFilter())) 
                {
                    HashMap<String, String> song = new HashMap<String, String>();
                    song.put("songTitle", file.getName().substring(0, (file.getName().length() - 4)));
                    song.put("songPath", file.getPath());

                    // Adding each song to SongList
                    songsList.add(song);

                }
            }
            // return songs list array
            return songsList;

        }


        class FileExtensionFilter implements FilenameFilter 
        {
            public boolean accept(File dir, String name) 
            {
                return (name.endsWith(".mp3") || name.endsWith(".MP3"));
            }
        }

    }
}

提前致谢。


尝试这个代码片段

final String MEDIA_PATH = Environment.getExternalStorageDirectory()
        .getPath() + "/";
private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
private String mp3Pattern = ".mp3";

// Constructor
public SongsManager() {

}

/**
 * Function to read all mp3 files and store the details in
 * ArrayList
 * */
public ArrayList<HashMap<String, String>> getPlayList() {
    System.out.println(MEDIA_PATH);
    if (MEDIA_PATH != null) {
        File home = new File(MEDIA_PATH);
        File[] listFiles = home.listFiles();
        if (listFiles != null && listFiles.length > 0) {
            for (File file : listFiles) {
                System.out.println(file.getAbsolutePath());
                if (file.isDirectory()) {
                    scanDirectory(file);
                } else {
                    addSongToList(file);
                }
            }
        }
    }
    // return songs list array
    return songsList;
}

private void scanDirectory(File directory) {
    if (directory != null) {
        File[] listFiles = directory.listFiles();
        if (listFiles != null && listFiles.length > 0) {
            for (File file : listFiles) {
                if (file.isDirectory()) {
                    scanDirectory(file);
                } else {
                    addSongToList(file);
                }

            }
        }
    }
}

private void addSongToList(File song) {
    if (song.getName().endsWith(mp3Pattern)) {
        HashMap<String, String> songMap = new HashMap<String, String>();
        songMap.put("songTitle",
                song.getName().substring(0, (song.getName().length() - 4)));
        songMap.put("songPath", song.getPath());

        // Adding each song to SongList
        songsList.add(songMap);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 扫描SD卡中的所有.mp3文件 的相关文章

  • 如何从 AAR 依赖项中排除特定资源?

    有没有一种相当简单的方法来实现模块的build gradle文件来指示应排除依赖项中的某些文件 我特别感兴趣的是从 AAR 中排除某些资源 金丝雀泄密 https github com square leakcanary是一个有趣的库 可帮
  • onActivityResult 中的完成活动不起作用

    我有一对必须同生共死的活动 基本上 AlphaActivity 会做一些工作 然后发送一个意图 startActivityForResult 对于 Beta 活动 当 Beta 活动完成时 我希望它发送一个意图 startActivity
  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • ImageView 中的全尺寸图像

    我正在尝试在 ImageView 中绘制图像 但我希望它不缩放 并根据需要使用滚动条 我怎样才能做到这一点 现在我只有一个可绘制集作为 XML 中 ImageView 的 android src 这会自动缩放图像以适应屏幕宽度 我读到这可能
  • 启动 Twitter 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 Twitter 应用程序的 Android Intent https stackoverflow com questions 2077008 android intent for twitter ap
  • 在 Android 2.2 上运行 HelloCordova 时找不到类“android.webkit.WebResourceResponse”

    我尝试按照本教程进行操作 http docs phonegap com en 2 7 0 guide getting started android index md html Getting 20 Started 20with 20 An
  • 如何编辑 gradle 依赖项

    我正在开发一个 android 项目 该项目在我的 gradle 文件中使用以下依赖项 compile com mapzen on the road 1 1 1 我想编辑其中一个文件 以添加一些缺少的功能并为该项目做出贡献 如何下载该项目并
  • Android SDK 中可用的所有“android.intent.action”操作的详尽列表是什么?

    大家好 我想知道标准 Android SDK 中定义的所有 Intent 操作是否有详尽的参考 我正在考虑完整的 android intent action someaction 名称 而不是 Intent 类中定义的方便别名操作的限制列表
  • 下载图像并显示它

    应用程序的主要目的是下载和显示图像 但是当我尝试启动应用程序时它崩溃了 这是我的代码 private DownloadImageTask task protected void onCreate Bundle savedInstanceSt
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • 6:需要显示BuyFlow UI

    There is a problem when i am click on payWithGoogle Button I am implementing Google Pay in my Android Application and wh
  • Cordova 地理定位不适用于 Android

    我想在 Android 上使用地理定位 我用 Apache Cordova 编写应用程序 地理定位在 android 电脑模拟器和 android 手机上均不起作用 I try http cordova apache org docs en
  • Locale.getDefault().getCountry() 返回空字符串

    我正在尝试使用国家 地区代码获取用户语言 例如en US es es 但是当我使用Locale getDefault getCountry 它返回空字符串 虽然它给了我正确的语言Locale getDefault getLanguage N
  • 当参数具有默认值时,为什么无法使用导航组件将参数传递给片段?

    我正在使用导航组件 但我不明白为什么如果定义了参数 则将参数传递给下面的方法时会出现错误 我正在使用 SafeArgs 只有当我为此参数定义默认值时才会出现此错误 有人可以解释一下为什么会发生这种情况以及如何解决它吗 这是导航图的部分代码
  • Android:如何监控WiFi信号强度

    当信号强度发生变化时我会收到通知 我尝试创建以下方法并在 onCreate 中调用它 private void initializeWiFiListener Log i TAG executing initializeWiFiListene
  • 更改android中禁用按钮的颜色

    有没有办法通过样式或其他形式更改 android 中禁用按钮的颜色 我目前有以下内容 可绘制 button default xml
  • 如何使 tablayout 文本大小相等?

    这就是我所做的 我为文本创建了一种样式
  • OpenGL ES 2.0 屏幕闪烁

    我面临着一个大问题 我正在使用带有 Android 4 0 3 的 Transformer tf101 选项卡 我的应用程序使用自定义 OpenGL ES 2 0 表面 我正在用纹理渲染多个平面 该纹理大约发生变化 每秒 20 次 并通过传
  • Amazon IAP 不会调用 onPurchaseResponse

    我有一个 Android 应用程序 它使用 IAP 我正在发送PurchasingManager initiateGetUserIdRequest 并得到用户识别成功 in onGetUserIdResponse 得到回复后Purchasi
  • 在 Android 中更新到 API 26 时,清单合并失败并出现多个错误

    我尝试使用 API 26 更新我的 gradle 安卓工作室2 3 3 但我在编译项目时遇到以下错误 这是我收到的错误的屏幕截图 应用级别build gradle Top level build file where you can add

随机推荐

  • “数组/指针等效”的现代术语是什么?

    几乎每个阅读本文的人都可能熟悉有关 C 的以下三个关键事实 当您在表达式中提及数组的名称时 它 大多数情况下 计算结果为指向数组第一个元素的指针 数组下标 运算符 对于指针和数组来说同样有效 看似数组的函数参数实际上声明了一个指针 这三个事
  • 如何获取用户数据中的 AWS 实例标签?

    我将 aws ec2 userdata 与 windows powershell 脚本结合使用 我需要实例引导 我的想法是 EC2实例标签添加 它的键名称 Version 它的值 1 0 0 158 branchname 我尝试获取用户数据
  • 如何使用PHP和SQL Server 2008调用存储过程

    我正在使用 SQL Server 2008 和 PHP 我想在 PHP 中调用存储过程 请指导我 Regards read mssql execute conn mssql connect host user pass mssql sele
  • 是否可以在 C# 中使用 Microsoft 的脱机文件 API?

    我正在尝试弄清楚如何使用离线文件API来自 C 如果可能 我相信 如果 API 是 COM API 那么理论上我应该能够使用以下方法从 C 调用它here 不幸的是 我不知道它是否是 COM API 也不知道如何判断 作为一个更一般的旁注
  • 手动优化嵌套循环

    我正在做一项家庭作业 我必须手动优化嵌套循环 我的程序将在禁用优化的情况下编译 作业的目标是在 6 秒内运行整个程序 少于 4 5 秒的加分 我只允许更改一小块代码 起点是这样的 for j 0 j lt ARRAY SIZE j sum
  • Scala REPL“错误:值>不是类型参数T的成员”

    这是我的文件 trait Set T def contains x T Boolean def incl x T Set T def union that Set T Set T class Empty T extends Set T ov
  • 如何在Monodroid中使用dropnet、sharp box等库

    我已经在图像上传器上创建了一个桌面应用程序 现在我想使用 Monodroid 将其移植到 Android 应用程序将图像上传到保管箱 在桌面版本中 我使用了 dropnet 它引用了 sharpbox Json 等 有什么方法可以在我的 m
  • 如何让ANTLR消耗所有可见元素?

    这是我的语法 grammar test text foo EOF foo X foo foo foo tail tail foo 我正在解析这段文字 X X X X 这是我得到的树 语法应该改变什么才能让我只得到一个tail包含所有元素的集
  • C 使用 scanf() 进行 |分隔字符串

    我想输入一些字符串然后两个整数 字符串由 分隔 而整数则由 分隔 在网上浏览时我看到了某种语法 其中涉及 我正在使用这个 但它根本不起作用 有人可以指出我应该做什么以及为什么我所做的事情是错误的吗 sscanf str s s s i i
  • 将 SXSSF 保存为 .xls 文件

    我正在使用 Apache POI 库将大量数据导入 Excel 文件 我不能使用 HSSF 模型 因为它需要太多内存并且 Java 会抛出内存堆异常 我发现的方法是 SXSSF 工作簿模型 它将每 N 行写入文件 而不是将所有工作簿存储在内
  • oracle如何在没有UNION的情况下将列转置为行

    假设我的表中有 4 列 id col1 col2 col3 现在我想将其转置为一列但分为 4 行 result someid col1data col2data col3data 我怎样才能做到这一点 谢谢 这可以使用以下方法完成unpiv
  • Fortran 结构体指针

    我在将一个指向结构的指针分配给一个指向结构的指针时遇到问题 我使用 gfortran 4 6 3 文件名是 test pointer struct f08 因此我使用 Fortran 2008 标准 由 gfortran 4 6 3 支持
  • 多个主题的 firebase 消息传递条件不起作用

    我正在使用节点 firebase admin 向 Android 设备发送消息 所有作品 除非我尝试向多个主题发送消息 在下面的示例代码中 我只是订阅了 2 个主题 然后直接向某个条件下的多个主题发送通知 我的手机上什么也没有到达 当您只发
  • C++ Hello World 体系结构 x86_64 的未定义符号:

    应该很简单 但是当我编译 C Hello World 代码时返回一堆未定义的符号错误 my first program in C include
  • 在服务器端静默打印报表

    我正在尝试编写一个程序 允许我将 ssrs 报告 rdl 文件 从服务器端代码打印到预定打印机 而不会出现任何弹出窗口询问我要使用哪台打印机 这可以完成吗 EDIT还粘贴了代码ReportViewerDisposer我正在使用的实现 和班级
  • 无法访问 Facebook 会话 - UnknownError:无效的应用程序

    我正在使用 Unity3D 的 Prime31 SocialNetworking 插件和 Facebook SDK 3 5 并尝试在 Android 2 3 5 设备上登录 Facebook Facebook 应用程序安装在我的设备上 并且
  • 项目作为 spring mongo 中的嵌套文档

    我正在寻找一位翻译来改变这一点 getCollection migrate aggregate project Contrat Field1 Field1 Field2 Field2 Formule Field3 Field3 Field4
  • 在 Codeigniter URL 段中传递 URL

    我想传递一个网址 例如在 codeigniter 的 url 段中 我正在尝试传递这样的东西并获取 http example com test a 1 b 2 网址 做到这一点的最佳方法应该是什么 将您的 URI 协议设置为REQUEST
  • MPAndroidChart - 是否可以控制图表元素的 z-index?

    我希望在我的绘图中有以下顺序MPAndroid图表 从下到上 数据连接线 限制线 数据点 是否可以 我知道方法com github mikephil charting components AxisBase setDrawLimitLine
  • android 扫描SD卡中的所有.mp3文件

    我正在尝试扫描 SD 卡中的所有 mp3 文件并保存其名称 这是负责此操作的代码片段 1 我做错了什么 1 SD卡 mnt sdcard 或 sdcard 哪个是正确的路径 public class PlayerActivity exten