Android内容提供商随机订单

时间:2012-07-04 19:04:23

标签: android random uri android-contentprovider

请有人指出我正确的方向:

我如何以随机顺序提供此查询?

musiccursor = getActivity().getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
musicdata, 
selection,
dirs, 
MediaColumns.DATA+ " asc");

我尝试用各种东西替换“asc”,包括Random(),RAND ......我很难过

2 个答案:

答案 0 :(得分:2)

选择25个随机记录:

musiccursor = getActivity().getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
musicdata, 
selection,
dirs, 
"RANDOM() LIMIT 25");

这对我有用。

答案 1 :(得分:2)

为了记录,这就是我实施解决方案的方式:

if(isShuffle){
// shuffle is on - play a random song
 sortOrder = "RANDOM()";
 } 
else{
sortOrder = MediaColumns.DATA+ " asc";   
}

...

//run the query          
musiccursor = ctx.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
musicdata, 
selection,
dirs,
sortOrder);

通过这样做,我可以将随机排序的光标投射到列表视图中。用户可以看到随机播放列表顺序,而不是随机选择大多数应用程序“秘密”的下一首歌曲。