标签:
MusicInfo data = params[0]; String path = null; String musicTitle = data.getMusicName(); if (data instanceof LocalMusicInfo) { path = ((LocalMusicInfo) data).getFilePath(); } else { List<LocalMusicInfo> musics = NeteaseMusicApplication.getInstance().getDownloadManager().getCompleteTracksByIds(Arrays.asList(new Long[]{data.getId()})); if (musics.size() > 0) { path = musics.get(0).getFilePath(); } else { return false; } } File[] files = new File(NeteaseMusicConst.workPath).listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String filename) { return filename.startsWith(NeteaseMusicConst.cloudMusicRingtonePrex); } }); if (files != null) { for (File file : files) { if (!file.isDirectory()) { file.delete(); } } } String ringtonePath = NeteaseMusicConst.ringtonePath + System.currentTimeMillis(); if (!FileUtils.copy(path, ringtonePath, false)) { return false; } ContentValues values = new ContentValues(); values.put(MediaStore.MediaColumns.DATA, ringtonePath); values.put(MediaStore.MediaColumns.TITLE, musicTitle); values.put(MediaStore.MediaColumns.DISPLAY_NAME, musicTitle); values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*"); values.put(MediaStore.Audio.Media.ARTIST, data.getSingerName()); values.put(MediaStore.Audio.Media.IS_RINGTONE, true); values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false); values.put(MediaStore.Audio.Media.IS_ALARM, false); values.put(MediaStore.Audio.Media.IS_MUSIC, false); Uri uri = MediaStore.Audio.Media.getContentUriForPath(ringtonePath); context.getContentResolver().delete(uri, String.format("%s=‘%s‘", MediaColumns.DATA, ringtonePath), null); Uri newUri = context.getContentResolver().insert(uri, values); try { RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE, newUri); return true; } catch (Throwable t) { return false; }
标签:
原文地址:http://www.cnblogs.com/lya-nju/p/5354974.html