yangliuhou4897 2016-11-25 17:28 采纳率: 0%
浏览 1974

为什么用Android的MediaStore查不到SD卡的音乐,权限里已经设置了

 import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {
private ListView list;
private List<Map<String, String>> musicList = 
new ArrayList<Map<String, String>>();
private SimpleAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);
        //musicList=loadSongs();

        list=(ListView) super.findViewById(R.id.listView1);
        adapter = new SimpleAdapter(getApplicationContext(), musicList,
                R.layout.item, new String[] { "name", "artist",
                        "time", "data", "id" }, new int[] {
                        R.id.name, R.id.songer, R.id.time,
                        R.id.path, R.id.musicRating });
        list.setAdapter(adapter);

    }

    public List<Map<String, String>> getmusic(){
    ContentResolver musicResolver = this.getContentResolver();
    Cursor cursor = /*getContentResolver()*/  musicResolver
            .query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,  
                    new String[] { MediaStore.Audio.Media.TITLE,  
                            MediaStore.Audio.Media.DURATION,  
                            MediaStore.Audio.Media.ALBUM,  
                            MediaStore.Audio.Media.ARTIST,  
                            MediaStore.Audio.Media._ID,  
                            MediaStore.Audio.Media.DATA,  
                            MediaStore.Audio.Media.DISPLAY_NAME }, null,  
                    null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);  

    if (cursor != null && cursor.moveToFirst()) {  
        do {  

            /*String mName = cursor.getString(0);  
            long mTime = cursor.getLong(1);  
            String mAlbum = cursor.getString(2);  
            String mArtist = cursor.getString(3);  
            long mId = cursor.getLong(4);  
            String mData = cursor.getString(5);  */
            String mName =cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
            int mTime=cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
            String mAlbum=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
            String mArtist=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
            int mId=cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
            String mData=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
            String mDisplay = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));

            HashMap a = new HashMap();  
            a.put("name", mName);  
            a.put("time", mTime);  
            //a.put("time1", mTime);  
            a.put("album", mAlbum);  
            a.put("artist", mArtist);  
            a.put("id", mId);  
            a.put("data", mData);  
            a.put("display", mDisplay);

            musicList.add(a);//ArrayList  
            System.out.println(mName + "-->" + mTime + "---->>--" + mData);  
        } while (cursor.moveToNext());  
    }  
    if (!cursor.isClosed()) {  
        cursor.close();  
    }
    return musicList;  
    }   
}

  • 写回答

1条回答 默认 最新

  • Code-Porter 博客专家认证 2016-11-26 02:26
    关注

    内容提供者只能获取到手机SD卡内的音乐,外置SD卡获取不到的。

    评论

报告相同问题?

悬赏问题

  • ¥15 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路