CONTENT_URI nicht vorhanden - wie mache ich trotzdem Cursor-Query?

S

sem_thesis

Fortgeschrittenes Mitglied
0
Haaallo! :laugh:


Ich hab' ein kleines API Problem, und zwar geht es um die Kategorie ContactsContract.CommonDataKinds: ContactsContract.CommonDataKinds | Android Developers


Fall 1) Ich möchte die verschiedenen E-Mail Addressen eines Kontaktes aufsammeln:

Code:
        public void queryAllEmailAddresses(int contactId) {
            final String[] projection = new String[] {
                    Email.DATA,                            // use Email.ADDRESS for API-Level 11+
                    Email.TYPE
            };

            final Cursor email = getContentResolver().query(
                    Email.CONTENT_URI,    
                    projection,
                    Data.CONTACT_ID + "=?",
                    new String[]{String.valueOf(contactId)},
                    null);

            if(email.moveToFirst()) {
                final int contactEmailColumnIndex = email.getColumnIndex(Email.DATA);
                final int contactTypeColumnIndex = email.getColumnIndex(Email.TYPE);
                
                while(!email.isAfterLast()) {
                    final String address = email.getString(contactEmailColumnIndex);
                    final String test3 = email.getString(contactTypeColumnIndex);
                    final String type = addressType(test3);                    
                    
                    email.moveToNext();
                }
                
            }
            email.close()

Ok, ich kann über Email.CONTENT_URI auf alle im API gespeicherten Email-Daten zugreifen --> das funktioniert perfekt.

Referenz: ContactsContract.CommonDataKinds.Email | Android Developers

Fall 2) Ich möchte nun die verschiedenen Organizations (Variable COMPANY & TITLE) & Websites (Variable URL) eines Kontaktes aufsammeln.
Die Dokus (ContactsContract.CommonDataKinds.Organization | Android Developers, ContactsContract.CommonDataKinds.Website | Android Developers) geben aber keine URIs an --> was mache ich nun?


Da habe ich mal gedacht, ja ich kann ja ein DATA.CONTENT_URI nehmen und tatsächlich --> der hat alle WERTE ausgegeben (Nummer, Email, Addresse, Organizaton, Websites, usw.)

Wie kann ich jetzt gezielt nur Website & Organization-Variblen sammeln?
 
sem_thesis schrieb:
Da habe ich mal gedacht, ja ich kann ja ein DATA.CONTENT_URI nehmen und tatsächlich --> der hat alle WERTE ausgegeben (Nummer, Email, Addresse, Organizaton, Websites, usw.)

Wie kann ich jetzt gezielt nur Website & Organization-Variblen sammeln?

Dafür musst du den MIME-Type der Data-Tabelle in der Selection entsprechend filtern, z.B. auf den Webseiten-MIME-Type.
 
  • Danke
Reaktionen: sem_thesis
Danke! Hat perfekt funktioniert:
Code:
        public void queryWebsites(int contactId) {
            
            final String[] projection = new String[] {
                    Website.URL
            };
            
            String where = Data.CONTACT_ID + " = ? AND " + Data.MIMETYPE + " = ?"; 
            
            String[] whereParameters = new String[]{
                    String.valueOf(contactId),
                    Website.CONTENT_ITEM_TYPE
            };

            final Cursor website = getContentResolver().query(
                    Data.CONTENT_URI,    
                    projection,
                    where,
                    whereParameters,
                    null);

            if(website.moveToFirst()) {
                final int contactWebsiteColumnIndex = website.getColumnIndex(Website.URL);
                
                while(!website.isAfterLast()) {
                    final String url = website.getString(contactWebsiteColumnIndex);

                    Log.d(TAG, "Website: " + url);
                                        
                    website.moveToNext();
                }
                
            }
            website.close();
        }

Referenz: android - Problems with ContactsContract.CommonDataKinds.StructuredName - Stack Overflow
 

Ähnliche Themen

2
Antworten
6
Aufrufe
267
24559
2
M
Antworten
3
Aufrufe
167
moin
M
L
Antworten
15
Aufrufe
909
jogimuc
J
Zurück
Oben Unten