2014-03-13 46 views
0

我正在使用以下光标来检索手机中的通讯录?但是,该代码给我在SIM和手机中的联系人。是否有可能仅通过电话获取联系人,他们的照片(如果可用),电话号码和显示名称?安卓手机通讯录仅适用于照片,手机和名称

cursor = getContentResolver().query(Phone.CONTENT_URI, null, null, null, null); 

    int contactIdIdx = cursor.getColumnIndex(Phone._ID);     
    int nameIdx = cursor.getColumnIndex(Phone.DISPLAY_NAME);     
    int phoneNumberIdx = cursor.getColumnIndex(Phone.NUMBER);     
    int photoIdIdx = cursor.getColumnIndex(Phone.PHOTO_ID); 
    cursor.moveToFirst(); 

do { 

    try { 

    Contact c = new Contact(); 

    String idContact = cursor.getString(contactIdIdx); 
String name = cursor.getString(nameIdx); 
c.setName(name); 

Log.i(TAG,storage.getDriveName()+": "+name); 
    String phoneNumber = cursor.getString(phoneNumberIdx); 
    Log.i(TAG,storage.getDriveName()+": "+phoneNumber); 
c.setPhoneNumber(phoneNumber); 
if(phoneNumber != null) 
    c.setPhotoUri(getPhotoUri(Long.valueOf(fetchContactIdFromPhoneNumber(phoneNumber)))); 

contacts.add(cbd); 
    } catch(Exception e) { 
    Log.e(TAG,storage.getDriveName()+": "+e.getMessage()); 
} 
} while (cursor.moveToNext()); 
} catch (Exception e) { 
    Log.e(TAG,storage.getDriveName()+": "+e.getMessage()); 

} 
if (cursor != null) { 
cursor.close(); 
} 
} 

回答

1

我已经实现了这个代码下面是我工作检查了这一点:在activityresult现在

Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, 
       ContactsContract.Contacts.CONTENT_URI); 
     // filters contact with phone numbers 
     contactPickerIntent 
       .setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); 
     startActivityForResult(contactPickerIntent, CONTACT_PICKER); 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    AndyUtills.removeSimpleProgressDialog(); 

    if (resultCode == RESULT_OK) { 
     switch (requestCode) { 
     case CONTACT_PICKER: 
      Cursor cursor = null; 
      Bitmap bitmap = null; 

      Uri result = data.getData(); 
      // String id = result.getLastPathSegment(); 

      cursor = getContentResolver().query(result, null, null, null, 
        null); 
      // String contactId=cursor.get; 
      if (cursor == null) { 

       AndyUtills.showToast("Selection Fail", this); 
       return; 
      } 
      if (!cursor.moveToFirst()) { 

       cursor.close(); 
       AndyUtills.showToast("Selection Fail", this); 
       return; 
      } 
      String contactName = cursor 
        .getString(cursor 
          .getColumnIndex((ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME) 
            .toString().trim())); 
      String contactNumber = cursor 
        .getString(cursor 
          .getColumnIndex((ContactsContract.CommonDataKinds.Phone.NUMBER))); 

      // check for contact whether it is already inserted or not 
      if (checkForSameNumber(contactNumber)) { 
       AndyUtills.showToast("Same contact is already inserted", 
         this); 
       return; 
      } 
      String photo = null; 

      // get photo uri from contacts 
      try { 

       photo = cursor 
         .getString(cursor 
           .getColumnIndex(ContactsContract.CommonDataKinds.Contactables.PHOTO_URI)); 
       Log.i("TAG", "Activity Result: Old:" + photo); 

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

      } 

      cursor.close(); 
      break; 

     } 

    } else { 
     // gracefully handle failure 
     Log.w("Auto Respond", "Warning: activity result not ok"); 
    } 
} 

希望你能得到所有想要的东西。