2017-10-10 1 views
-1

Je veux obtenir tout numéro de téléphone à partir mobile Je suis en utilisant le code suivant, mais il donne seulement les numéros de téléphone qui sont mobiles non de simobtenir tous les contacts mobiles Android

private void getContactList() { 
    ContentResolver cr = getContentResolver(); 
    Cursor cur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC"); 

    if ((cur != null ? cur.getCount() : 0) > 0) { 
     while (cur != null && cur.moveToNext()) { 
      String id = cur.getString(
        cur.getColumnIndex(ContactsContract.Contacts._ID)); 
      String name = cur.getString(cur.getColumnIndex(
        ContactsContract.Contacts.DISPLAY_NAME)); 

      if (cur.getInt(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()) { 
        String phoneNo = pCur.getString(pCur.getColumnIndex(
          ContactsContract.CommonDataKinds.Phone.NUMBER)); 
        ContactsPlacer obj = new ContactsPlacer(); 
        obj.setContactname(name); 
        obj.setContactnumber(phoneNo); 
        names.add(obj); 

       } 
       pCur.close(); 
      } 
     } 
    } 
    if(cur!=null){ 
     cur.close(); 
    } 
} 

Répondre

0

est Ci-dessous le code pour obtenir tous les contacts de l'appareil

private void getAllContacts() { 
    try { 
     if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { 
      Toast.makeText(this, "Read Contact permission not enabled", Toast.LENGTH_SHORT).show(); 
     } 
     else { 
      contactVOList = new ArrayList(); 
      ContactVO contactVO; 

      ContentResolver contentResolver = getContentResolver(); 
      Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC"); 
      if (cursor.getCount() > 0) { 
       while (cursor.moveToNext()) { 

        int hasPhoneNumber = Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))); 
        if (hasPhoneNumber > 0) { 
         String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
         String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 

         contactVO = new ContactVO(pref.getUser_ID(),phoneNumberArrayList); 
         contactVO.setContactName(name); 

         Cursor phoneCursor = contentResolver.query(
           ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
           null, 
           ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", 
           new String[]{id}, 
           null); 
         if (phoneCursor.moveToNext()) { 
          String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
          phoneNumber = phoneNumber.replace(" ", ""); 
          phoneNumber = phoneNumber.trim(); 
          String number = "+91#1234*121#"; 
          number=phoneNumber.replaceAll("[\\D]", ""); 
          contactVO.setContactNumber(number); 
          phoneNumberArrayList.add(number); 
         } 

         phoneCursor.close(); 

         Cursor emailCursor = contentResolver.query(
           ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
           null, 
           ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", 
           new String[]{id}, null); 
         while (emailCursor.moveToNext()) { 
          String emailId = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
         } 
         emailCursor.close(); 
         contactVOList.add(contactVO); 
        } 
       } 
       cursor.close(); 
       if (contactVOList.size() > 0) { 
        final Handler handler = new Handler(); 
        handler.postDelayed(new Runnable() { 
         @Override 
         public void run() { 
          CallAPI(); 
         } 
        }, 1000); 


       } 
      } 
     } 
    } catch (NumberFormatException e) { 
     e.printStackTrace(); 
    } 
} 

et a ajouté ci-dessous le code pour obtenir un contact SIM

Uri simUri = Uri.parse("content://icc/adn");Cursor cursorSim = this.getContentResolver().query(simUri, null, null,null, null); 

    while (cursorSim.moveToNext()) {   
     listName.add(cursorSim.getString(cursorSim.getColumnIndex("name"))); 
     listContactId.add(cursorSim.getString(cursorSim.getColumnIndex("_id")));  
     listMobileNo.add(cursorSim.getString(cursorSim.getColumnIndex("number"))); 
     } 
+0

il donnera à tous les contacts de mobile et sim de manière triée –