`

android 获取系统和SD卡音乐

 
阅读更多

获取android系统内置的音乐。

ContentResolver resolver = getContentResolver();

Cursor c = resolver.query(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,

null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);

// Cursor就能得到系统的音乐

c.moveToNext();没有获取数据就moveToNext是因为c的默认参数是-1而不是0,如果不写这句就会报错

CursorIndexOutOfBoundsException

do {

// System.out.println("TAG+++GAT" + c.getString(1));

SongData songData = new SongData();

songData.setFilename(c.getString(1));

songData.setSongname(c.getString(2));

// Log.e("TGA", c.getString(2));

arrayList.add(songData);

} while (c.moveToNext());

c.close();

红色标注的是获取系统内置音乐的参数。

MediaStore.Audio.Media.INTERNAL_CONTENT_URI 是获取系统内置音乐的参数

MediaStore.Audio.Media.EXTERNAL_CONTENT_URI 是获取系统外置SD卡音乐的参数。

c.getString(index)中index每个参数的含义如下:

//--------song是写的一个类文件,主要用来存放获取的内容------------

                song.setFilename(cursor.getString(1));//文件名

                song.setTitle(cursor.getString(2));//歌曲名
                song.setDuration(cursor.getInt(3));//时长
                song.setSinger(cursor.getString(4));//歌手名
                song.setAlbum(cursor.getString(5));//专辑名
                if (cursor.getString(6) != null) {//年代
                     song.setYear(cursor.getString(6));
                } else {
                     song.setYear("未知");
                }
                if ("audio/mpeg".equals(cursor.getString(7).trim())) {//歌曲格式
                     song.setType("mp3");
                } else if ("audio/x-ms-wma".equals(cursor.getString(7).trim())) {
                     song.setType("wma");
                }
                if (cursor.getString(8) != null) {//文件大小
                     float temp = cursor.getInt(8) / 1024f / 1024f;
                     String sizeStr = (temp + "").substring(0, 4);
                     song.setSize(sizeStr + "M");
                } else {
                     song.setSize("未知");
                }
                if (cursor.getString(9) != null) {//文件路径
                     song.setFileUrl(cursor.getString(9));
                }

//--------------------------

 系统的铃声分为多种,如果直接获取系统铃声可能把电话铃声,短信铃声,通知铃声全部获取了。所有的系统铃声都在ROM中的frameworks/base/data/sounds/文件夹下(如果有兴趣搞ROM可以自己下载一下Google 官方源码,自己看一下sounds文件下的目录结构)

只想获取系统的电话铃声:

Cursor c = resolver.query(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,

       new String[] { MediaStore.Audio.Media._ID,

               MediaStore.Audio.Media.DATA,

               MediaStore.Audio.Media.TITLE }, "is_ringtone != ?",

       new String[] { "0" }, "_id asc");

 

 

分享到:
评论

相关推荐

    android读取sd卡中音乐文件列表

    ### Android读取SD卡中音乐文件列表 在Android开发中,常常需要实现的功能之一就是读取设备中的音乐文件。这通常用于音乐播放器类的应用程序,以便用户可以浏览并选择他们想要播放的歌曲。本文将详细介绍如何通过...

    Android本地音乐播放器(获取外置存储卡的音乐)

    首先,我们要理解的是,这个播放器能够从外部存储卡(即外置SD卡)读取音乐文件,这意味着我们需要掌握Android对文件系统和存储权限的管理。下面将详细讨论相关知识点。 1. **Android权限管理**: - 在Android 6.0...

    android实现播放sd卡的音乐播放

    1. **文件系统访问**:Android设备上的外部存储(通常指的是SD卡)是通过`Environment.getExternalStorageDirectory()`来获取的。开发者需要权限`READ_EXTERNAL_STORAGE`来读取其中的文件。通过`MediaStore`类可以...

    android读取sd卡中MP3文件

    1. **文件系统访问**:Android设备上的外部存储(通常称为SD卡)被模拟为一个文件系统,可以使用Java的`java.io.File`类来操作。首先,你需要获取SD卡的根目录路径,通常是`Environment.getExternalStorageDirectory...

    Android sd卡音频文件列表显示+歌曲播放

    在Android平台上,开发一个能列出SD卡上所有音乐文件并实现播放功能的应用是常见的需求。这个"Android sd卡音频文件列表显示+歌曲播放"的Demo就是为此目的设计的。它结合了文件系统操作、UI设计以及媒体播放技术,是...

    Android判断获取内置外置sd卡demo

    在Android系统中,内外置SD卡的管理是一个重要的部分,特别是在开发涉及文件存储的应用时。本文将详细探讨“Android判断获取内置外置sd卡demo”所涵盖的知识点,并提供相关代码示例。 首先,理解Android对存储卡的...

    android 闹钟选择SD卡音乐铃声

    1. **多媒体文件访问**:Android系统允许应用程序访问外部存储(如SD卡)上的文件。首先,你需要在AndroidManifest.xml中申请读取外部存储的权限: ```xml <uses-permission android:name="android.permission....

    安卓Android源码——开发之SD卡的使用.zip

    在安卓(Android)系统中,SD卡(Secure Digital Card)被广泛用于扩展设备的存储空间,以便用户存储照片、视频、音乐和其他大型文件。对于开发者来说,理解和掌握如何在源码层面使用SD卡进行开发至关重要。这篇...

    android sd卡写文件备份

    在Android系统中,SD卡(Secure Digital Card)是设备扩展存储空间的重要途径,它允许用户存储照片、视频、音乐和其他应用程序的数据。对于开发者而言,理解如何在SD卡上读写文件是开发Android应用时的一项基本技能...

    Android app s讀取外部SD卡範例

    在Android系统中,外部存储设备通常指的是可移动的SD卡,它是用户存储大量数据如照片、视频、音乐和应用数据的理想位置。由于权限管理的限制,访问外部SD卡需要遵循特定的API和步骤。 首先,要确保你的应用在...

    android SD卡文件浏览器

    在Android操作系统中,SD卡作为扩展存储空间,常常存储着大量的用户数据,包括照片、音乐、文档等。为了方便用户管理和访问这些文件,Android SD卡文件浏览器应运而生。本文将深入探讨这一主题,包括其工作原理、...

    android浏览SD卡目录文件,实现音频播放

    这个功能可以让用户自由选择存储在外部存储设备(如SD卡)上的音频文件进行播放,增加了应用的灵活性和用户体验。下面我们将详细讲解如何实现这个功能。 1. **访问SD卡** Android系统提供了`Environment`类来获取...

    获取SD卡上应用,音乐(歌),视频,图片等信息

    在Android系统中,获取SD卡上的应用、音乐、视频和图片信息是开发移动应用时常见的需求。这涉及到对文件系统、多媒体数据库以及Android API的深入理解。以下将详细阐述如何实现这一目标。 首先,让我们来看看如何...

    android中将下载的mp3文件存放到虚拟sd卡中

    在Android系统中,由于安全性和用户隐私的考虑,应用程序通常无法直接访问物理SD卡,而是使用了一个名为"外部存储"的虚拟SD卡空间。这个空间是Android设备为应用提供的一个可扩展存储区域,用于存储用户数据和媒体...

    仿QQ音乐,检测标准SD卡和扩展SD卡总大小和容量

    在开发一款类似QQ音乐的应用时,检测这两种SD卡的总大小和剩余容量是一项重要的功能,这有助于用户了解他们的设备存储情况,并合理管理音乐和其他媒体文件。 首先,我们要了解Android系统的存储架构。Android设备...

    查找SD卡上的音乐文件

    本篇文章将深入解析如何利用Android系统内置的功能来实现这一目标,包括使用SQLite数据库查询SD卡上的MP3文件信息,并展示如何通过编程手段获取这些信息。 ### 一、理解Android中的MediaStore 在Android系统中,`...

    Android GetSDTree(简单SD卡文件浏览器).zip

    在Android系统中,主要的存储区域包括内部存储(Internal Storage)和外部存储(External Storage),其中外部存储通常指的是SD卡。 二、Android SD卡与外部存储 在Android设备上,SD卡通常被用作外部存储,用于...

    Android-Android扫描SD卡指定类型文件

    在Android平台上,对SD卡进行特定类型的文件扫描是一项常见的任务,比如用户可能希望找到所有的.mp3音乐文件或.mp4视频文件。在这个场景中,我们主要会涉及到以下几个Android开发中的关键知识点: 1. **读写权限**...

    简单的Android音乐播放器

    2. 文件系统:音乐文件可以存储在外部存储(SD卡),便于管理和访问。 【权限管理】 1. 在AndroidManifest.xml中声明所需的权限,如读写外部存储、互联网访问、录音等。 2. Android 6.0及以上版本需动态申请权限...

    AndroidSD卡扫描

    在Android系统中,SD卡(Secure Digital card)是设备扩展存储空间的重要部分,通常用于存储用户数据、应用程序、媒体文件等。当我们需要对SD卡进行管理或者查找特定文件时,就需要进行SD卡扫描。这个过程涉及到...

Global site tag (gtag.js) - Google Analytics