访问系统文件夹

时间:2015-12-09 23:14:40

标签: android android-4.4-kitkat

我试图访问Android上的系统文件夹,/Music是准确的。我在文档中发现的是getExternalFilesDir(Environment.DIRECTORY_MUSIC)将授予对与我的应用程序相关的音乐文件夹的访问权限,这是其中的一部分,并且最终将在应用程序从设备中删除后删除。所以我的问题是如何访问系统音乐文件夹内容?我是否拥有获取这些文件并稍后通过蓝牙发送的必要权限?

到目前为止我做了什么,但它显然列出了app目录:

File path = getExternalFilesDir(Environment.DIRECTORY_MUSIC);

Log.d("Files", "Path: " + path);
File f = new File(path,"");
File file[] = f.listFiles();

for (int i=0; i < file.length; i++)
{
    filesList.setText("FileName:" + file[i].getName());
}

1 个答案:

答案 0 :(得分:1)

要获取设备上所有音乐的列表,您需要查看使用Content ProvidersMediaStore

Google's sample code查看此代码,了解如何从设备中检索音乐。它向您展示了如何做到这一点。

重要的一点是这部分...

Uri uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;

// Perform a query on the content resolver. The URI we're passing specifies that we
// want to query for all audio media on external storage (e.g. SD card)
Cursor cur = mContentResolver.query(uri, null,
        MediaStore.Audio.Media.IS_MUSIC + " = 1", null, null);

if (cur == null) {
    // Query failed...
    return;
}

if (!cur.moveToFirst()) {
    // Nothing to query. There is no music on the device. How boring.
    return;
}

// retrieve the indices of the columns where the ID, title, etc. of the song are
int artistColumn = cur.getColumnIndex(MediaStore.Audio.Media.ARTIST);
int titleColumn = cur.getColumnIndex(MediaStore.Audio.Media.TITLE);
int albumColumn = cur.getColumnIndex(MediaStore.Audio.Media.ALBUM);
int durationColumn = cur.getColumnIndex(MediaStore.Audio.Media.DURATION);
int idColumn = cur.getColumnIndex(MediaStore.Audio.Media._ID);
相关问题