如何从原始文件夹设置铃声?

时间:2014-06-05 07:35:16

标签: android

我正在尝试从原始文件夹设置铃声 我使用的代码是

//fifavoting14.com is the package name
//Uri path = Uri.parse("android.resource://fifavoting14.com/"+R.raw.ringtone);
        Uri path = Uri.parse("android.resource://fifavoting14.com/R.raw.ringtone"); 
            RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_RINGTONE,path);

我使用的权限是......

<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

首先,您必须使用contentvalues将所有值(路径,标题,大小等)存储在本地数据库中。

File k = new File(path, "mysong.mp3"); // path is a file to /sdcard/media/ringtone

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "My Song title");
values.put(MediaStore.MediaColumns.SIZE, 215454);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.ARTIST, "Madonna");
values.put(MediaStore.Audio.Media.DURATION, 230);
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);

//Insert it into the database
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
Uri newUri = main.getContentResolver().insert(uri, values);

RingtoneManager.setActualDefaultRingtoneUri(myActivity, RingtoneManager.TYPE_RINGTONE, newUri);