2015-04-08 204 views
0

我想從我的聯繫人列表中永久刪除聯繫人。 我正在使用以下代碼。如何從聯繫人列表中刪除聯繫人號碼?

public boolean deleteContact(String phone, String name) { 
    System.out.println("name :: "+name +" "+phone); 
    Uri contactUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, 
      Uri.encode(phone)); 
    Cursor cur = context.getContentResolver().query(contactUri, null, null, 
      null, null); 
    try { 
     if (cur.moveToFirst()) { 
      do { 
       if (cur.getString(
         cur.getColumnIndex(PhoneLookup.DISPLAY_NAME)) 
         .equalsIgnoreCase(name)) { 
        String lookupKey = cur 
          .getString(cur 
            .getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY)); 
        Uri uri = Uri.withAppendedPath(
          ContactsContract.Contacts.CONTENT_LOOKUP_URI, 
          lookupKey); 
        int i = context.getContentResolver().delete(uri, null, null); 
        System.out.println("i :::: "+i); 
        return true; 
       } 

      } while (cur.moveToNext()); 
     } 

    } catch (Exception e) { 
     System.out.println(e.getStackTrace()); 
    } 
    return false; 
} 

在我的移動聯繫人中,我有一個名爲「SIRI」的聯繫人,有兩個手機號碼。上面的代碼刪除了兩個數字。我想只刪除選定的號碼,而不是兩個號碼。

回答

0

如果你只有一個要刪除所選的電話號碼,試試這個:

Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phone)); 
resolver.delete(uri, null, null); 

簡單盡一切一氣呵成:

Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; 

String selections = ContactsContract.CommonDataKinds.Phone.NUMBER + " = ' + phone + ' AND " + ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME.toLowerCase() + " = ' + name.toLowerCase() + '"; 

int res = contentResolver.delete(uri, selections, null); 
+0

如果有兩個數字,名字的意思是我想刪除選定的號碼不是名稱和其他號碼也。感謝您的回覆。 – Siri

相關問題