Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

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

Das Thema "CONTENT_URI nicht vorhanden - wie mache ich trotzdem Cursor-Query?" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 10.04.2011, 16:16   #1 (permalink)
Android-Hilfe.de Mitglied

Modell: Nexus One

Registriert seit: 06.03.2011
Beiträge: 111
Abgegebene Danke: 14
Erhielt 0 Danke für 0 Beiträge
Standard CONTENT_URI nicht vorhanden - wie mache ich trotzdem Cursor-Query?

Haaallo!


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 ist offline   Mit Zitat antworten
Alt 11.04.2011, 12:59   #2 (permalink)
Android Experte

Registriert seit: 24.01.2011
Beiträge: 637
Abgegebene Danke: 5
Erhielt 572 Danke für 228 Beiträge
Standard AW: CONTENT_URI nicht vorhanden - wie mache ich trotzdem Cursor-Query?

Zitat:
Zitat von sem_thesis Beitrag anzeigen
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.
maniac103 ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei maniac103 für diesen Beitrag:
sem_thesis (11.04.2011)
Alt 11.04.2011, 15:12   #3 (permalink)
Android-Hilfe.de Mitglied

Modell: Nexus One

Registriert seit: 06.03.2011
Beiträge: 111
Abgegebene Danke: 14
Erhielt 0 Danke für 0 Beiträge
Standard AW: CONTENT_URI nicht vorhanden - wie mache ich trotzdem Cursor-Query?

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
sem_thesis ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
[Beginner] Wie mache ich in meinem X8... topek Sony Ericsson Xperia X8 Forum 20 31.03.2012 22:45
[Datenbank Frage] Cursor query Googles94 Android App Entwicklung 2 17.03.2011 13:33
Wie mache ich das update ?? porti82 Root / Hacking / Modding für T-Mobile Pulse 3 21.02.2011 22:43
Wie mache ich einen Screenshot? Manni09 HTC Desire HD Forum 11 16.12.2010 19:55
Wie mache ich ein Rom update ?? iamurhero HTC Hero / T-Mobile G2 Touch Forum 1 22.11.2009 23:16




Du liest gerade: "CONTENT_URI nicht vorhanden - wie mache ich trotzdem Cursor-Query?" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.