求助!在Android平台下开发音乐播放器,怎样让系统自动扫描加载歌曲的时候扫描指定文件夹,还有下载歌曲的时候怎样下载到指定文件夹? 求助!在Android平台下开发音乐播放器,怎样让系统自动扫描加载歌曲的时候扫描指定文件夹(因为好多.mp3格式的不仅仅是歌曲,也有可能是游戏中自带声音之类的),还有下载歌曲的时候怎样下载到指定文件夹? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private static final String[] INTERNAL_COLUMNS = new String[] { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.TITLE, "\"" + MediaStore.Audio.Media.INTERNAL_CONTENT_URI + "\"", MediaStore.Audio.Media.TITLE_KEY };private static String constructBooleanTrueWhereClause(List<String> columns) { if (columns == null) return null; StringBuilder sb = new StringBuilder(); for (int i = columns.size() - 1; i >= 0; i--) { sb.append(columns.get(i)).append("=1 or "); } if (columns.size() > 0) { // Remove last ' or ' sb.setLength(sb.length() - 4); } return sb.toString(); } private Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { /*if (mContext != null) { return ((Activity)mContext).managedQuery(uri, projection, selection, selectionArgs, sortOrder); } else {*/ return mContext.getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder); //} } private Cursor getInternalRingtones() { return query( MediaStore.Audio.Media.INTERNAL_CONTENT_URI, INTERNAL_COLUMNS, constructBooleanTrueWhereClause(mFilterColumns), null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER); } protected Cursor getCursor() { if (mCursor != null) { return mCursor; } final Cursor internalCursor = getInternalRingtones(); if(null == internalCursor) { return null; } return mCursor = new SortCursor(new Cursor[] { internalCursor, null, null }, MediaStore.Audio.Media.DEFAULT_SORT_ORDER); }获取的cursor里面就有歌曲了return mCursor = new SortCursor(new Cursor[] { internalCursor, null, null }, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);这个里面的两个null分别对应不同地方的歌曲。具体哪个对应哪个不记得了,比如说第一个是system下面的,第二个是sdcard上面的等等。 非常感谢,现在又遇到了一个问题,在查找文件时 Cursor c = this.getContentResolver() .query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.DURATION, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DISPLAY_NAME }, null, null, null);中,当时写的代码是这个类继承了Activity,而现在我是继承了Fragment(public class ListFragment extends Fragment)然后getContentResolver就不能用this调用了,有没有什么方法可以实现正确的代码?本人是初学不太明白 http请求,使用GZIP,但是不成功,急求各位~~!! android手机可以登陆企业outlook吗? 求Android手机号码吉凶查询、归属地查询源码 NDK的ndk-build的一个问题 android模拟器,观看DDMS的log信息 有关android倒计时CountDownTimer的问题 Log.v("...", e.getMessage())的问题? 请问Android的SDK可以离线安装吗? Button设置背景图片和文字的小问题 急急急!一个显示问题 (急)android接收中文短信出现乱码 急!!!EditText弹出软键盘,但获取不了焦点!
MediaStore.Audio.Media._ID, MediaStore.Audio.Media.TITLE,
"\"" + MediaStore.Audio.Media.INTERNAL_CONTENT_URI + "\"",
MediaStore.Audio.Media.TITLE_KEY
};private static String constructBooleanTrueWhereClause(List<String> columns) {
if (columns == null) return null;
StringBuilder sb = new StringBuilder();
for (int i = columns.size() - 1; i >= 0; i--) {
sb.append(columns.get(i)).append("=1 or ");
}
if (columns.size() > 0) {
// Remove last ' or '
sb.setLength(sb.length() - 4);
}
return sb.toString();
} private Cursor query(Uri uri,
String[] projection,
String selection,
String[] selectionArgs,
String sortOrder) {
/*if (mContext != null) {
return ((Activity)mContext).managedQuery(uri, projection, selection, selectionArgs, sortOrder);
} else {*/
return mContext.getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);
//}
} private Cursor getInternalRingtones() {
return query(
MediaStore.Audio.Media.INTERNAL_CONTENT_URI, INTERNAL_COLUMNS,
constructBooleanTrueWhereClause(mFilterColumns),
null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
} protected Cursor getCursor() {
if (mCursor != null) {
return mCursor;
}
final Cursor internalCursor = getInternalRingtones();
if(null == internalCursor)
{
return null;
}
return mCursor = new SortCursor(new Cursor[] { internalCursor, null, null },
MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
}获取的cursor里面就有歌曲了
return mCursor = new SortCursor(new Cursor[] { internalCursor, null, null },
MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
这个里面的两个null分别对应不同地方的歌曲。具体哪个对应哪个不记得了,比如说第一个是system下面的,第二个是sdcard上面的等等。
Cursor c = this.getContentResolver()
.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String[]{MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DISPLAY_NAME },
null, null, null);
中,当时写的代码是这个类继承了Activity,而现在我是继承了Fragment(public class ListFragment extends Fragment)然后getContentResolver就不能用this调用了,有没有什么方法可以实现正确的代码?本人是初学不太明白