2016-05-22 12 views
0

Von dem, was ich gelesen habe mit Lookup_key ist der beste Weg, um einen Kontakt zu löschen. Jeder Kontakt hat einen eindeutigen Lookup-Schlüssel, auch wenn der Kontakt bearbeitet wird, während zum Beispiel Löschen nach Name oder Nummer usw. ... Sie mehrere Einträge löschen könnten.So löschen Sie einen Kontakt mit dem Lookup_key des Kontakts

Sagen Sie, wenn ich das lookup_key für einen Kontakt in meinem Telefonbuch oder SIM haben:

String thelookupkey = 1393i2f.3789r504-2927292F4D4D2F35274949374B.2537i1272844629.1728i108 

Wie kann ich diesen Kontakt aus meinem Telefonbuch löschen. Ich weiß, es ist so etwas wie unten, aber nicht sicher über die genaue Syntax (auch nicht wollen, möglicherweise zu meinem Telefonbuch ruinieren beim Experimentieren)

public void deletecontactbutton(View view) { 
    context.getContentResolver().delete(ContactsContract.Contacts.CONTENT_LOOKUP_URI, 
      null, thelookupkey); 

} 
+0

überprüfen diese: http: // Stackoverflow. com/questions/527216/how-to-entfernen-a-contact-programmatically-in-android – Rafal

+0

Danke Rafal, aber überprüft, bevor Sie fragen. Ich fand einige der Antworten gefährlich verwirrend und war mir nicht sicher, ob ich das in meinem Telefonbuch riskieren würde. Ich teste meine Apps mit meinem Handy. Ich habe nach einer der Antworten tatsächlich einen Kommentar hinterlassen. – CHarris

+0

@Rafal Siehe meine Antwort. – CHarris

Antwort

0

Ich bin stolz zu sagen, dass ich geschrieben habe (Ja, ME! !!) ein Unterprogramm, das genau das tut, was ich will: das heißt, löschen Sie einen Kontakt (Telefon, Nummer, alle mit diesem Kontakt zugeordnet Details) unter Verwendung des LOOKUP_KEY Wert:

public void deletecontactbutton(View view) { 

     String thelookupkey; 
     thelookupkey = "1885r1471-29373D3D572943292D4333"; 

//  in our cursor query let's focus on the LOOKUP_KEY column 
//  this will give us all the strings in that column 
     String [] PROJECTION = new String [] { ContactsContract.Contacts.LOOKUP_KEY }; 

//  we're going to query all the LOOKUP_KEY strings ; that is, the unique ids of all our contacts 
//  which we can find in the LOOKUP_KEY column of the CONTENT_URI table 
     Cursor cur = getContentResolver().query 
       (ContactsContract.Contacts.CONTENT_URI, PROJECTION, null, null, null); 

     try { 
      if (cur.moveToFirst()) { 
       do { 
        if 
//    If a LOOKUP_KEY value is equal to our look up key string.. 
       (cur.getString(cur.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY)).equalsIgnoreCase(thelookupkey)) { 
//    then delete that LOOKUP_KEY value, including all associated details, like number, name etc... 
         Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, thelookupkey); 
         getContentResolver().delete(uri, null, null); 
        } 

       } while (cur.moveToNext()); 
      } 
//  deal with any errors, should they arise 
     } catch (Exception e) { 
      System.out.println(e.getStackTrace()); 
     } finally { 
//   finally, close the cursor 
      cur.close(); 
     } 

    } 
Verwandte Themen