有关MediaStore.Audio.Media类的问题
我运行以下程序在手机上:
Log.d(TAG, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI.toString());
StringBuilder sb = new StringBuilder();
Cursor cursor = this.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
if(cursor.moveToFirst()){
do{
//歌曲文件的路径 :
String url = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
sb.append( "url:" + url + "\n");
}while(cursor.moveToNext());
cursor.close();
Log.d(TAG, sb.toString());
}
这段代码打印显示 MediaStore.Audio.Media.EXTERNAL_CONTENT_URI为content://media/external/audio/media,而且打印出了手机内置外存/storage/emulated/legacy/*和扩展sdcard中的音频文件路径/storage/sdcard1/*;
问题来了!!然后我在log中随便抓取手机内置外存中的任一音频文件,继续以下操作:
Uri uri = MediaStore.Audio.Media.getContentUriForPath("/storage/emulated/0/阿桑/受了点伤/一直很安静.mp3");
Log.d(TAG, uri.toString());
打印出来该文件对应的uri居然是content://media/internal/audio/media!!
但是抓取sdcard中的任一音频文件,显示的uri就是content://media/external/audio/media
我完全糊涂了,既然是从 MediaStore.Audio.Media.EXTERNAL_CONTENT_URI中获取到的这些音视频信息,它们的uri当然应该和MediaStore.Audio.Media.EXTERNAL_CONTENT_URI一样啊?!
实在不得其解,恳求大神帮助,不胜感激!!