如何在安卓原生应用程序中以编程方式为联系人添加铃声

4

我知道如何使用在Android中添加新联系人的方法,以编程方式创建带有姓名、手机号码和电子邮件ID的联系人。但是我不知道如何为联系人设置铃声。请帮助我。谢谢!

在将联系人添加到本机应用程序后,我找到了添加铃声的解决方案:

String select = "(" + ContactsContract.Contacts.DISPLAY_NAME + " == \"" +first_name+ "\" )"; 

Cursor c1 = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, 
CONTACTS_SUMMARY_PROJECTION, select, null, ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");

startManagingCursor(c1);

int id=0;

if (c1.moveToNext()) {

id = new Integer(c1.getString(0)).intValue();

Toast.makeText(getApplicationContext(), "CONTACT ID: "+id+"", Toast.LENGTH_LONG).show(); 

} 

ContentResolver cr = getContentResolver(); 

cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);

ContentValues values=new ContentValues(); values.put(ContactsContract.Contacts.CUSTOM_RINGTONE, newgroup_ringtone); 
cr.update(ContactsContract.Contacts.CONTENT_URI, values, Contacts._ID + "=" + id, null);

如何插入带铃声的新联系人?请帮帮我,我非常急需。 - AndroidRaji
以下代码无法让我添加带铃声的联系人,它显示插入失败异常 尝试{ 如果(ringtonepath != null) { ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE) .withValue(ContactsContract.CommonDataKinds.Phone.CUSTOM_RINGTONE, ringtonepath) .build() ); } } - AndroidRaji
1个回答

1
为什么不先添加联系人,然后使用以下代码检索该联系人并更新其铃声:
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Contacts.CONTENT_URI)
        .withSelection(ContactsContract.Contacts._ID + " = ?", new String[] {id})
        .withValue(ContactsContract.Contacts.STARRED, starred)
        .withValue(ContactsContract.Contacts.SEND_TO_VOICEMAIL, sendToVoicemail)
        .withValue(ContactsContract.Contacts.CUSTOM_RINGTONE, ringtone)
        .build());

try {
    resolver.applyBatch(ContactsContract.AUTHORITY, ops);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接