直接路径到Raw文件夹设置为Android铃声

时间:2014-02-15 10:06:26

标签: android path ringtone

case 64:
                    String path=android.os.Environment.getExternalStorageDirectory().getPath() + "/data/babysounds/res/raw/laugh.mp3";
                    File ringtoneFile = new File(path);

                    ContentValues values = new ContentValues();
                    values.put(MediaStore.MediaColumns.DATA, ringtoneFile .getAbsolutePath());
                    values.put(MediaStore.MediaColumns.TITLE, "laugh");
                    values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
                    values.put(MediaStore.Audio.Media.ARTIST, "The");
                    values.put(MediaStore.MediaColumns.SIZE, 215454);
                    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(ringtoneFile 
                            .getAbsolutePath());
                    getContentResolver().delete(
                            uri,
                            MediaStore.MediaColumns.DATA + "=\""
                                    + ringtoneFile .getAbsolutePath() + "\"", null);
                    Uri newUri = getContentResolver().insert(uri, values);

                    RingtoneManager.setActualDefaultRingtoneUri(
                            Context.this, RingtoneManager.TYPE_RINGTONE,
                            newUri);

                    break;

我将此代码设置为铃声,但它不起作用。会发生什么:当我单击listView按钮时,文件已创建但未设置为铃声。 我想要的是:我希望获得原始文件夹的直接路径并选择文件。我怎样才能做到这一点? 是的,我添加了权限

1 个答案:

答案 0 :(得分:1)

原始文件夹中任何资源的URI或LINK:

  

String uri =“android.resource://”+ getPackageName()+“/”+ R.raw.filename;