How to Get Contact name, number and emai ID from a list of contacts?

前端 未结 2 1897
后悔当初
后悔当初 2021-01-15 07:54

I am new to android ,I need to get the details of my contacts, but the details include only 3

  1. Contact name

  2. contact number and

相关标签:
2条回答
  • 2021-01-15 08:10

    You can access addressbook like this;

    ContentResolver cr = getContentResolver();
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,null, null,ContactsContract.Contacts.DISPLAY_NAME);
    int kisiSayisi =  cur.getCount();
    
    if(kisiSayisi > 0)
    {
        int KisiIndex = 0;
        while(cur.moveToNext())
        {
            String id = cur.getString(cur.getColumnIndex(BaseColumns._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())
                {
                    String phone = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA));
                     //String phoneType = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
                     String dogruGSM = gsmNoKontrol(phone);
                     if(dogruGSM.compareTo("0") != 0){
                            Kisi kisi = new Kisi(KisiIndex, name, dogruGSM, false);
                            MyList.add(kisi);
                            KisiIndex ++;
                     }
                 }
                 pCur.close();
             }
         }
     }
    
    0 讨论(0)
  • 2021-01-15 08:11

    By below code you can do that -

    public void doLaunchContactPicker(View view) {
        Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,Contacts.CONTENT_URI);
        startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
        if (resultCode == RESULT_OK) {
            switch (requestCode) 
            {
            case CONTACT_PICKER_RESULT:
                Cursor cursor = null;
                String email = "", name = "";
                try {
                    Uri result = data.getData();
                    Log.v(DEBUG_TAG, "Got a contact result: " + result.toString());
    
                    // get the contact id from the Uri
                    String id = result.getLastPathSegment();
    
                    // query for everything email
                    cursor = getContentResolver().query(Email.CONTENT_URI,  null, Email.CONTACT_ID + "=?", new String[] { id }, null);
    
                    int nameId = cursor.getColumnIndex(Contacts.DISPLAY_NAME);
    
                    int emailIdx = cursor.getColumnIndex(Email.DATA);
    
                    // let's just get the first email
                    if (cursor.moveToFirst()) {
                        email = cursor.getString(emailIdx);
                        name = cursor.getString(nameId);
                        Log.v(DEBUG_TAG, "Got email: " + email);
                    } else {
                        Log.w(DEBUG_TAG, "No results");
                    }
                } catch (Exception e) {
                    Log.e(DEBUG_TAG, "Failed to get email data", e);
                } finally {
                    if (cursor != null) {
                        cursor.close();
                    }
                    EditText emailEntry = (EditText) findViewById(R.id.editTextv);
                    EditText personEntry = (EditText) findViewById(R.id.person);
                    emailEntry.setText(email);
                    personEntry.setText(name);
                    if (email.length() == 0 && name.length() == 0) 
                    {
                        Toast.makeText(this, "No Email for Selected Contact",Toast.LENGTH_LONG).show();
                    }
                }
                break;
            }
    
        } else {
            Log.w(DEBUG_TAG, "Warning: activity result not ok");
        }
    }
    

    And, also refer these links -

    1. Get Contact Details

    2. How to Read Contacts

    3. Get All Contact Details

    Don't forget to add the required permission -

    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    

    in your AndroidManifest.xml file. And, Just modify this code with your needs.

    0 讨论(0)
提交回复
热议问题