2014-10-17 2 views
0

У меня есть проблема с добавлением музыки (хранящейся в sdcard) на рингтон Android. У меня есть код здесь, чтобы вставить его:Эффективный способ добавления музыки к мелодии звонка на Android

ContentValues values = new ContentValues(); 
    values.put(MediaStore.MediaColumns.DATA, filePath); 
    values.put(MediaStore.MediaColumns.TITLE, songTitle); 
    values.put(MediaStore.MediaColumns.SIZE, file.length()); 
    values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/" + fileType); 
    values.put(MediaStore.Audio.Media.ARTIST, singerName); 
    values.put(MediaStore.Audio.Media.DURATION, duration); 
    values.put(MediaStore.Audio.Media.IS_RINGTONE, true); 
    values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true); 
    values.put(MediaStore.Audio.Media.IS_ALARM, true); 
    values.put(MediaStore.Audio.Media.IS_MUSIC, true); 

    /* delete bug here */ 
    Uri uri = MediaStore.Audio.Media.getContentUriForPath(filePath); 
    Uri newUri = context.getContentResolver().insert(uri, values); 

    if (isRingtone) 
     RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE, newUri); 
    if (isSMS) 
     RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_NOTIFICATION, newUri); 

После того как я добавил ringtone1 в настройки Android, добавить рингтон настройки, а затем снова у меня есть 2 ringtone1 в списке мелодий звонка.

Странно, когда я вставляю рингтон в уведомление, он будет отображаться только в списке уведомлений. Но если я удалю рингтон, он будет удален как в списке мелодий звонка, так и в списке мелодий для уведомлений. Список, на который я не установил рингтон после удаления, будет отображаться на «неизвестной мелодии звонка».

Так что я хочу найти способ проверить, существует ли уже мелодия звонка в настройке. Во-вторых, я хочу найти способ получить uri рингтона, который был добавлен в настройку.

Если у вас возникли вопросы, пришлите мне здесь комментарий. Извините за мой плохой английский. Большое спасибо.

ответ

2

ли что-то подобное, чтобы найти, если вы уже добавили URI, что RingtoneManager использование

String[] columns = { 
     MediaStore.MediaColumns.TITLE, 
     MediaStore.MediaColumns._ID 
}; 

String selection = MediaStore.Audio.Media.DATA + "=?"; 
String selectionArgs[] = { k.getAbsolutePath() }; 

Cursor cursor = context.getContentResolver().query(uri, columns, selection, selectionArgs, null); 

Это принесет для вас, если вы уже добавили его и получить URI использовать в setActualDefaultRingtoneUri()

Он разобрал (uri+"/"+cursor.getString(1)); надеюсь, что это поможет

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

  • Нет связанных вопросов^_^