如题,就是去实现把所有的音乐文件找出来,然后选择一个设置成默认铃声
解决方案 »
- 【请教内行】我用socket编程,模拟器能连通网络找到服务器。。。
- service如何和activity通讯
- 请问Android出现这个问题怎么解决,先谢过了!!呵呵
- ndk编译sdl问题
- 请教下,投入2w元,能开发一个应用吗?
- 虚拟来电
- android空指针问题
- 有用过友推分享组件的嘛?遇到了技术问题
- android里不能使用saaj.jar和jaxrpc.jar吗?
- 我给EditText 加了个TextWatcher ,要自已在TextWatcher里写代码判断小数点只允许输入一次,想不出来代码,求高手写下谢谢!!
- 左键、右键在手机上没有,如何改进呢?
- android中的Factory函数是什么意思
也可以通过读取文件列表的方式。
例如读取sd卡音乐文件的方法:
String[] mCursorCols = new String[] { MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.MIME_TYPE, MediaStore.Audio.Media.ALBUM_ID,
// MediaStore.Audio.Media.ARTIST_ID,
MediaStore.Audio.Media.DISPLAY_NAME, // 文件名
MediaStore.Audio.Media.DURATION };
// 通过一个URI可以获取所有音频文件
Uri MUSIC_URL = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; // 这里过滤了一下,默认播放时间大于10秒的可以看作是歌 "duration > 10000"
try {
String selection = MediaStore.Audio.Media.IS_MUSIC + "!=0 AND "
+ MediaStore.Audio.Media.DURATION +" > ?";
String[] selectionArgs = new String[] {
String.valueOf(MusicDemo.minAudioLength * 1000) // s -> ms
}; // 歌曲名升序排列
// String orderBy = MediaStore.Audio.Media.TITLE + " COLLATE LOCALIZED ASC";
String orderBy = MediaStore.Audio.Media.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
mCursor = getContentResolver().query(MUSIC_URL, mCursorCols, selection, selectionArgs, orderBy);
if (mCursor == null) {
Log.d(TAG, "No music has found!!!!!!" + '\n');
} else if (mCursor.getCount() == 0) {
Log.d(TAG, "No music has found!!!!!! mCursor.getCount() == 0" + '\n');
}
} catch (Exception e) {
e.printStackTrace();
Log.e(TAG, "onCreate() getContentResolver ERROR.");
}2.RingtoneManager就是铃声管理类,用来设置铃声时使用。
参考:
android 个人铃声设置代码