2014-03-13 45 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"); 
    } 
} 

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