Telefonnummer auslesen

  • Antworten:6
  • Bentwortet
samtux
  • Forum-Beiträge: 147

02.04.2014, 21:21:16 via Website

Hi! Ich möchte in meiner App die Telefonnummern aus dem Android-Telefonbuch auslesen. Dazu habe ich bis jetzt:

private void kontakte_einlesen(){
        ArrayList<Item> items = new ArrayList<Item>();
        // TODO Kontakte nach und nach aus Telefonbuch lesen
        ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
                null, null, null, null);
        if (cur.getCount() > 0) {
            while (cur.moveToNext()) {
                String id = cur.getString(
                        cur.getColumnIndex(ContactsContract.Contacts._ID));
                String name = cur.getString(
                        cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                     Cursor pCur = cr.query(
                     ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{id}, null);
                     while (pCur.moveToNext()) {
                         // Do something with phones
                         int nummer_i = pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID);
                         String nummer = Integer.toString(nummer_i);
                         System.out.println(nummer);
                         items.add(new Item(name, id, nummer));
                     } 
                     pCur.close();
                }
            }
        }

Jedoch bekomme ich bei jedem Kontakt 4 als Telefonnummer angezeigt...

Was mache ich falsch?

Oder ist es auch möglich, die hauseigene Telefon-App von Andriod über einen Intent aufzurufen und die gewählte Telefonnummer als String zurück zu bekommen? Das würde mir eigentlich reichen...

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

03.04.2014, 07:21:02 via App

Siehe Skype die lassen sich einenIntent eintragen auf den man clicken kann. Aber dafür musst du deine App in die Kategorie telefonapp geschriebn werden

Zum oberen code
Permission gesetzt?
LogCat?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
samtux
  • Forum-Beiträge: 147

03.04.2014, 16:25:11 via Website

Die App ist sowieso eine Telefonapp. Die Permission habe ich gesetzt. Die App stürzt ja auch nicht ab und bringt keinen Fehler... Es ist halt nur, dass bei allen Kontakten die gleiche Nummer (4) ausgelesen wird.

Wie kann ich über einen Intent auf die Android Telefonbuch-App zugreifen?

Antworten
samtux
  • Forum-Beiträge: 147

03.04.2014, 18:08:14 via Website

impjor
Warum nutzt du CONTACT_ID und nicht NUMBER?

Ich habe es jetzt mal in Phone.NUMBER geändert. Das gleiche Problem, nur das statt einer 4 als Nummer immer eine 27 angezeigt wird...

Antworten
samtux
  • Forum-Beiträge: 147

03.04.2014, 18:25:34 via Website

Jetzt scheint es zu funktionieren:grin:. Danke!
Sollten doch noch Probleme auftreten, werde ich mich wieder melden.

Antworten