如何在android中以编程方式将铃声添加到本机应用程序联系人
Posted
技术标签:
【中文标题】如何在android中以编程方式将铃声添加到本机应用程序联系人【英文标题】:How to add ringtone to native app contacts programmatically in android 【发布时间】:2012-09-15 22:30:54 【问题描述】:我知道如何使用How to add new contacts in 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);
【问题讨论】:
如何使用铃声插入新联系人?请帮帮我,我需要很紧急的 以下代码不适用于我添加带有铃声的联系人。它显示插入失败异常尝试 if(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() ); 【参考方案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);
【讨论】:
以上是关于如何在android中以编程方式将铃声添加到本机应用程序联系人的主要内容,如果未能解决你的问题,请参考以下文章
我可以在 Android 中以编程方式滚动 ScrollView 吗?
如何在android中以编程方式将音频.mp3转换为.m4a
如何在 Swift 4 中以编程方式将 IBAction 添加到按钮?