首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何加入MediaStore.Audio.Media

如何加入MediaStore.Audio.Media
EN

Stack Overflow用户
提问于 2012-04-19 15:37:52
回答 1查看 944关注 0票数 0

嗨,我使用合并光标在我的列表视图中显示数据结果,我添加了一个索引器,它的所有功能都很好,但我注意到and它的ok显示了外部数据,之后又是and,但现在是内部数据,所以我的索引“工作”,但不像我想的那样,我知道mergecursor不能被排序,所以我想知道我能做一个rawquery吗?加入MediaStore.Audio.Media.INTERNAL_CONTENT_URI和MediaStore.Audio.Media.EXTERNAL_CONTENT_UR?怎么做呢?我想加入,然后由宋ASC进行排序。或者MediaStore.Audio.Media.DEFAULT_SORT_ORDER,或者如何将数组列表或其他集合转换为游标?

现行法典:

代码语言:javascript
运行
复制
private Cursor getInternalAudioCursor(String selection,
    String[] selectionArgs) {
return this.getContentResolver().query(
        MediaStore.Audio.Media.INTERNAL_CONTENT_URI,
        INTERNAL_COLUMNS,
        selection,
        selectionArgs,
        MediaStore.Audio.Media.DEFAULT_SORT_ORDER);

}

代码语言:javascript
运行
复制
private Cursor getExternalAudioCursor(String selection,
    String[] selectionArgs) {
return this.getContentResolver().query(
        MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
        EXTERNAL_COLUMNS,
        selection,
        selectionArgs,
        MediaStore.Audio.Media.DEFAULT_SORT_ORDER);

}

代码语言:javascript
运行
复制
Cursor c = new MergeCursor(new Cursor[] {
        getExternalAudioCursor(selection, argsArray),
        getInternalAudioCursor(selection, argsArray)});
startManagingCursor(c);
EN

回答 1

Stack Overflow用户

发布于 2012-04-19 15:48:39

你不能做rawQuery,因为

  • MediaStore (实际上是MediaProvider)是一个ContentProvider,而不是一个SQLiteDatabase (尽管它位于抽象层下)--它并不是故意提供的SQLite操作,因为您可以有其他东西支持ContentProvider而不是SQLite数据库。
  • internalexternal是单独的数据库文件&分别访问。您不能构建引用另一个文件的查询(除非附加它们,因为您无法访问该低级别)

您可以构建一个MatrixCursor,其中将两个源游标的数据按排序顺序排列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10231659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档