2014-12-22 2 views
0

Я пытаюсь установить файл .mp3, помещенный в папку/assets в качестве мелодии звонка. Это мой кодУстановить .mp3 файл как мелодию звонка из активов

File file = new File("file:///android_asset/my_sounds/", name); 

ContentValues values = new ContentValues(); 
values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath()); 
values.put(MediaStore.MediaColumns.TITLE, name.replace(".mp3", "")); 
values.put(MediaStore.MediaColumns.SIZE, file.length()); 
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); 
values.put(MediaStore.Audio.Media.ARTIST, 
     media.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST)); 
values.put(MediaStore.Audio.Media.DURATION, 
     media.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)); 

uri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath()); 
mUri = getContext().getContentResolver().insert(uri, values); 
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);  

RingtoneManager.setActualDefaultRingtoneUri(getContext(), 
     RingtoneManager.TYPE_RINGTONE, mUri); 

Когда я иду в настройки (настройки телефона) я вижу название песни, которую я поставил в качестве мелодии звонка, но когда кто-то звонит мне, он играет старую мелодию.

+0

Возможный дубликат [Как установить рингтон в Android из моей активности?] (Http://stackoverflow.com/questions/1271777/how-to-set-ringtone-in-android-from-my-activity) –

ответ

1
File file = new File("file:///android_asset/my_sounds/", name); 

ContentValues values = new ContentValues(); 
values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath()); 
values.put(MediaStore.MediaColumns.TITLE, name.replace(".mp3", "")); 
values.put(MediaStore.MediaColumns.SIZE, file.length()); 
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); 
values.put(MediaStore.Audio.Media.ARTIST, 
     media.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST)); 
values.put(MediaStore.Audio.Media.DURATION, 
     media.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)); 
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);  

uri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath()); 
mUri = getContext().getContentResolver().insert(uri, values); 


RingtoneManager.setActualDefaultRingtoneUri(getContext(), 
     RingtoneManager.TYPE_RINGTONE, mUri); 

Вы установили рингтон после установки его в mUri.

Смежные вопросы