【问题标题】:Querying MediaStore using URIs使用 URI 查询 MediaStore
【发布时间】:2011-07-14 21:11:17
【问题描述】:

我正在尝试找到一种方法来通过 uri 查询媒体存储中的单个文件。我有一个 uris 列表,我想在我的应用中提供更多信息。

如: 内容://媒体/外部/音频/媒体/10

file:///sdcard/media/audio/sample.mp3

这是我正在处理的代码。我不确定 id 应该是什么?

        String[] cols = new String[] {
                MediaStore.Audio.Media._ID,
                MediaStore.Audio.Media.DATA,
                MediaStore.Audio.Media.TITLE
        };


        String where = MediaStore.Audio.Media._ID + "=" + id;

        String[] proj = { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Video.Media.SIZE, MediaStore.Audio.Media.ALBUM };

        Cursor musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, null, cols, null);

提前致谢。

【问题讨论】:

    标签: android audio mediastore


    【解决方案1】:

    好的,我想出了这个。这是我所追求的信息的链接:

    http://developer.android.com/guide/topics/providers/content-providers.html

    这是完成它的代码:

    Uri uri = Uri.parse("content://media/external/audio/media/10");
    Cursor musiccursor = managedQuery(uri, null, null, null, null);
    
    if (musiccursor.moveToFirst()) {
        String title; 
        int titleColumn = musiccursor.getColumnIndex(MediaStore.Audio.Media.TITLE); 
        title = musiccursor.getString(titleColumn);
    }   
    

    【讨论】:

      【解决方案2】:

      无需为一列获取所有内容。试试这个:

      Uri uri = Uri.parse("content://media/external/audio/media/10");
      String[] columns = new String[] {MediaStore.Audio.Media.TITLE};
      Cursor musiccursor = managedQuery(uri, columns, null, null, null);
      
      if (musiccursor.moveToFirst()) {
          String title = musiccursor.getString(0);
      }   
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多