14

Telefondan whatsapp iletişimini almayı denedim ve whatsapp iletişiminin toplam sayısını aldım ama RawContacts dan whatsapp'ı nasıl alacağım Numara ve bilmediğim ad. Çözüm bulmaya çalıştım ama bunun için kesin çözüm bulamıyorum. Lütfen bana yardım et.Android'den whatsapp kişileri nasıl edinilir?

Kodumu aşağıya koydum. Benim soru Çözüm bulduk

ContentResolver cr = context.getContentResolver(); 

Cursor c = cr.query(
         ContactsContract.RawContacts.CONTENT_URI, 
         new String[] { ContactsContract.RawContacts.CONTACT_ID, ContactsContract.RawContacts.DISPLAY_NAME_PRIMARY }, 
         ContactsContract.RawContacts.ACCOUNT_TYPE + "= ?", 
         new String[] { "com.whatsapp" }, 
         null); 

       ArrayList<String> myWhatsappContacts = new ArrayList<>(); 

       String projection[] = { ContactsContract.CommonDataKinds.Phone.NUMBER }; 

       if(c != null) { 
        if (c.getCount() > 0) { 
         while (c.moveToNext()) { 

          String whatsappContactId = c.getString(c.getColumnIndex(ContactsContract.RawContacts.Data._ID)); 

          Cursor dataCursor = cr.query(
            ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
            projection, 
            ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", 
            new String[]{whatsappContactId}, null); 
          // You can also read RawContacts.CONTACT_ID to read the 
          // ContactsContract.Contacts table or any of the other related ones. 
          String number = dataCursor.getString(dataCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NORMALIZED_NUMBER)); 
          myWhatsappContacts.add(number); 

         } 
        } 
       } 

       showLogI(TAG, " WhatsApp contact size : " + myWhatsappContacts.size()); 

cevap

38

yüzden burada cevabımı koymak .. başkaları ..

İlk Okuma için yararlı olabilir ve bu kolay bundan sonra Android Kişiler Veri Store şemasını anlamaya çalışmak Tüm temas akışını anlamak. Parçacıkların altında üç kademeli veri modeli şeması verilmiştir. Burada

Kod Parçaları

//This class provides applications access to the content model. 
ContentResolver cr = context.getContentResolver(); 

//RowContacts for filter Account Types 
Cursor contactCursor = cr.query(
     ContactsContract.RawContacts.CONTENT_URI, 
     new String[]{ContactsContract.RawContacts._ID, 
       ContactsContract.RawContacts.CONTACT_ID}, 
     ContactsContract.RawContacts.ACCOUNT_TYPE + "= ?", 
     new String[]{"com.whatsapp"}, 
     null); 

//ArrayList for Store Whatsapp Contact 
ArrayList<String> myWhatsappContacts = new ArrayList<>(); 

if (contactCursor != null) { 
    if (contactCursor.getCount() > 0) { 
     if (contactCursor.moveToFirst()) { 
      do { 
       //whatsappContactId for get Number,Name,Id ect... from ContactsContract.CommonDataKinds.Phone 
       String whatsappContactId = contactCursor.getString(contactCursor.getColumnIndex(ContactsContract.RawContacts.CONTACT_ID)); 

       if (whatsappContactId != null) { 
        //Get Data from ContactsContract.CommonDataKinds.Phone of Specific CONTACT_ID 
        Cursor whatsAppContactCursor = cr.query(
          ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
          new String[]{ContactsContract.CommonDataKinds.Phone.CONTACT_ID, 
            ContactsContract.CommonDataKinds.Phone.NUMBER, 
            ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME}, 
          ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", 
          new String[]{whatsappContactId}, null); 

        if (whatsAppContactCursor != null) { 
         whatsAppContactCursor.moveToFirst(); 
         String id = whatsAppContactCursor.getString(whatsAppContactCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID)); 
         String name = whatsAppContactCursor.getString(whatsAppContactCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
         String number = whatsAppContactCursor.getString(whatsAppContactCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 

         whatsAppContactCursor.close(); 

         //Add Number to ArrayList 
         myWhatsappContacts.add(number); 

         showLogI(TAG, " WhatsApp contact id : " + id); 
         showLogI(TAG, " WhatsApp contact name : " + name); 
         showLogI(TAG, " WhatsApp contact number : " + number); 
        } 
       } 
      } while (contactCursor.moveToNext()); 
      contactCursor.close(); 
     } 
    } 
} 

showLogI(TAG, " WhatsApp contact size : " + myWhatsappContacts.size()); 
gösterisi Android İletişim Veri Deposu Şeması
enter image description here

+0

Büyük açıklama! – activesince93

+0

Tabloların her birinin amacı nedir? Uygulamaların eklediği verileri nerede bulabilirim ve ayrıca burada gösterildiği gibi amaçlarını da kullanabilirler: http://stackoverflow.com/q/35992096/878126? –

+0

telgraf kontakları ve diğer uygulamalar ile bu çalışma? – Webserveis