2015-12-23 2 views
0

Вот мой код, чтобы обновить контакт и установить пользовательские кольца мелодии он работает успешно, но он не работает, и я использую API 9Как установить пользовательские мелодии связаться в андроиде

 sound = new File(folder,SONG); 
       ContentValues values = new ContentValues(); 
       values.put(MediaStore.MediaColumns.DATA, sound.getAbsolutePath()); 
       values.put(MediaStore.MediaColumns.TITLE, "1-800-hotlinebling"); 
       values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*"); 
       values.put(MediaStore.Audio.Media.ARTIST, "Umair Ali"); 
       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); 
       values.put(ContactsContract.Data.RAW_CONTACT_ID, contactID); 
       values.putNull(ContactsContract.Data.CUSTOM_RINGTONE); 
       Uri localUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, contactID); 
       getContentResolver().update(localUri, values, null, null); 
+0

Он не может работать из-за API 9, который является отсутствием многих функций. Если вы не можете позволить себе устройства с более высоким API-интерфейсом использовать эмулятор типа Genymotion или попытаться найти пользовательский ПЗУ для своего устройства ;-) – piotrek1543

+0

Я также тестирую API 19 –

ответ

0

В StackOverflow Аналогичный вопрос Setting contact custom ringtone, how? вы найдете, что ответ

Я узнал, как это работает. Ниже вы можете увидеть фиксированный код код:

Uri contactData = ContactsContract.Contacts.CONTENT_URI;  String contactId = contactData.getLastPathSegment(); 
      Cursor localCursor = managedQuery(contactData, PROJECTION, null, null, null);  localCursor.move(120/*CONTACT ID NUMBER*/); 

    String str1 = 
    localCursor.getString(localCursor.getColumnIndexOrThrow("_id")); 
    String str2 = 
    localCursor.getString(localCursor.getColumnIndexOrThrow("display_name")); 
    Uri localUri = 
    Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, str1); 
    ContentValues localContentValues = new ContentValues(); 

    localContentValues.put(ContactsContract.Data.RAW_CONTACT_ID, contactId); 
    localContentValues.put(ContactsContract.Data.CUSTOM_RINGTONE, 
    f.getAbsolutePath()+"/Adventure.ogg"); 
    getContentResolver().update(localUri, localContentValues, null, null);  
    Toast.makeText(this, "Ringtone assigned to: " + str2, 0).show(); 

Просто измените номер удостоверения личности контакта с идентификатором контакта, который вы хотите изменения.

Надеется, что это поможет

+0

lol. Я тоже это делаю. такой же код. Я новичок в андроиде. Мне нужно установить сервисы Google для этого или нет? –

+0

в этом выпуске - еще один ответ. Нет, я не чувствую, что вам нужны услуги Google. Возможно, вам нужно добавить некоторые разрешения в AndroidManifest – piotrek1543

+0

Я добавил разрешения в файл манифеста –

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