Android Kontakt._ID! = Data.CONTACT_ID

7

Ich führe eine Abfrage gegen CommonDataKinds.Phone.CONTENT_URI durch und bekomme alle Ergebnisse, die eine NOT NULL Telefon-ID haben.

so ziemlich der Code ist:

%Vor%

und dann wiederhole ich jedes Cursor-Ergebnis und bekomme die gewünschten Spalten. Der Code ist:

%Vor%

Was ich nicht verstehe ist, warum sich Phone.CONTACT_ID von der entsprechenden Contacts._ID aus derselben Zeile unterscheidet ...

Sollen nicht beide gleich sein? Es gibt viele Beispiele, die genau diese Spalten verwenden, um Abfragen auszuführen. Zum Beispiel hier und hier , wenn Sie die Schlüsselzeiger überprüfen.

    
NewUserSO 01.04.2014, 23:42
quelle

2 Antworten

19

ContactsContract.Contacts._ID gibt eine eindeutige ID für eine Zeile zurück

Dies ist ein sehr gutes Beispiel

    
seyed mohammad madani 29.02.2016 08:55
quelle
5

ContactsContract.Contacts._ID gibt eine eindeutige ID für eine Zeile zurück.

Nun hängt die Ausgabe davon ab, für welches cursor Sie ContactsContract.Contacts._ID abfragen.

Wenn Sie ContactsContract.Contacts._ID von ContactsContract.Contacts.CONTENT_URI abfragen, erhalten Sie ContactsContract.Contacts._ID und ContactsContract.CommonDataKinds.Phone.CONTACT_ID selbe.

Aber wenn Sie ContactsContract.Contacts._ID von ContactsContract.CommonDataKinds.Phone.CONTENT_URI abfragen, erhalten Sie ContactsContract.Contacts._ID und ContactsContract.CommonDataKinds.Phone.CONTACT_ID anders als auf jedem Telefoneintrag ContactsContract.Contacts._ID wird inkrementiert.

Wenn Sie also die gleiche _ID und Phone._ID haben wollen, dann fragen Sie von ContactsContract.Contacts.CONTENT_URI anstelle von ContactsContract.CommonDataKinds.Phone.CONTENT_URI

ab     
dreamcoder 19.04.2014 12:26
quelle

Tags und Links