2016-06-03 4 views
1

In meiner App brauche ich Kontakte vom Telefon nur nicht von anderen Konten wie Google Mail und Facebook.Mit meinem Code bekomme ich die Kontakte, aber Problem ist, dass ich es aus allen Quellen wie Google Mail, Facebook, etc.Erhalten Sie Kontakte von Telefon nur Android

-Code

contactResolver = context.getContentResolver(); 
     Cursor cur = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC"); 
     if (cur.getCount() > 0) { 
      while (cur.moveToNext()) { 
       contactsModel = new ContactsModel(); 

       id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
       contactsModel.name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 


       phoneCursor = contactResolver.query(
         ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
         null, 
         ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", 
         new String[]{id}, null); 

       while (phoneCursor.moveToNext()) { 
        // Do something with phones 
        int phoneType = phoneCursor.getInt(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); 
        String phoneNo = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
        //you will get all phone numbers according to it's type as below switch case. 
        switch (phoneType) { 
         case ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE: 
          phone = phoneNo; 
          break; 
         case ContactsContract.CommonDataKinds.Phone.TYPE_HOME: 
          phone = phoneNo; 
          break; 
         case ContactsContract.CommonDataKinds.Phone.TYPE_WORK: 
          phone = phoneNo; 
          break; 
         case ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE: 
          phone = phoneNo; 
          break; 
         case ContactsContract.CommonDataKinds.Phone.TYPE_OTHER: 
          phone = phoneNo; 
          break; 
         default: 
          phone = phoneNo; 
          break; 
        } 

        listPhones.add(phoneNo); 
       } 


       /*get email*/ 
       emailCursor = contactResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
         null, 
         ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id}, null); 

       while (emailCursor.moveToNext()) { 
        //String emai = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
        int type = emailCursor.getInt(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); 
        String s = (String) ContactsContract.CommonDataKinds.Email.getTypeLabel(context.getResources(), type, ""); 
        listEmails.add(emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA))); 

       } 
       contactsModel.emails = listEmails; 
       contactsModel.numbers = listPhones; 

       listContacts.add(contactsModel); 
       listEmails = new ArrayList<>(); 
       listPhones = new ArrayList<>(); 
       emailCursor.close(); 
       phoneCursor.close(); 


      } 


     } 

     cur.close(); 


     return listContacts; 

wie werde ich die Kontakte erhalten nur aus Telefonbuch.

Antwort

0

Versuchen unter Abfrage:

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.Contacts.IN_VISIBLE_GROUP + "=1", 
      null, 
      null 
    ); 

wo IN_VISIBLE_GROUP: 1 = local, 0 = Google-Konto

+0

Danke, aber mit diesem Code i von Google Mail-Kontakte zu befreien bin immer, aber ich bin immer noch immer hotmail ka Kontakte –

+0

Sorry, aber ich habe keine Ahnung von Hotmail. –

0
Hope it will help you 


    public void readContacts() { 
     StringBuffer sb = new StringBuffer(); 
     sb.append("......Contact Details....."); 
     ContentResolver cr = getContentResolver(); 
     Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, 
       null, null, null); 
     String phone = null; 
     String emailContact = null; 
     String emailType = null; 
     String image_uri = ""; 
     Bitmap bitmap = 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)); 

       image_uri = cur 
         .getString(cur 
           .getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_URI)); 
       if (Integer 
         .parseInt(cur.getString(cur 
           .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
        System.out.println("name : " + name + ", ID : " + id); 
        sb.append("\n Contact Name:" + name); 
        Cursor pCur = cr.query(
          ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
          null, 
          ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
            + " = ?", new String[] { id }, null); 
        while (pCur.moveToNext()) { 
         phone = pCur 
           .getString(pCur 
             .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
         sb.append("\n Phone number:" + phone); 
         System.out.println("phone" + phone); 
        } 
        pCur.close(); 

        Cursor emailCur = cr.query(
          ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
          null, 
          ContactsContract.CommonDataKinds.Email.CONTACT_ID 
            + " = ?", new String[] { id }, null); 
        while (emailCur.moveToNext()) { 
         emailContact = emailCur 
           .getString(emailCur 
             .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
         emailType = emailCur 
           .getString(emailCur 
             .getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); 
         sb.append("\nEmail:" + emailContact + "Email type:" + emailType); 
         System.out.println("Email " + emailContact 
           + " Email Type : " + emailType); 

        } 

        emailCur.close(); 
       } 

       if (image_uri != null) { 
        //System.out.println(Uri.parse(image_uri)); 
        try { 
         bitmap = MediaStore.Images.Media 
           .getBitmap(this.getContentResolver(), 
             Uri.parse(image_uri)); 
         sb.append("\n Image in Bitmap:" + bitmap); 
         // System.out.println(bitmap); 

        } catch (FileNotFoundException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } catch (IOException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 

       } 


       sb.append("\n........................................"); 
      } 

      textDetail.setText(sb); 
     } 
    } 
+0

Nein das funktioniert nicht –