代码之家  ›  专栏  ›  技术社区  ›  AndroidRaji

如何在android中以编程方式将铃声添加到本地应用程序联系人

  •  4
  • AndroidRaji  · 技术社区  · 12 年前

    我知道如何使用程序为本机应用程序创建带有姓名、手机号码和电子邮件id的联系人 How to add new contacts in android 。但我不知道如何使用铃声创建联系人。请帮帮我。提前谢谢

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

    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);
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Michael Wildermuth    12 年前

    为什么不先添加联系人,然后检索该联系人,并用铃声更新联系人,代码如下:

    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);
    }