इस बात की गारंटी नहीं कर सकते हैं 4.0 के लिए काम करेंगे, क्योंकि मैं एक समय में उपयोग नहीं किया है, लेकिन 2.3.3 पर ठीक काम करता है:
contactId पाने के लिए, मैं पहली बार उपयोगकर्ता किसी संपर्क का चयन करने के लिए मिल :
public void clickSelectContact(View v) {
Intent i = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(i, CONTACTS_REQUEST_CODE);
}
उपयोगकर्ता एक संपर्क का चयन किया है जब यह इस विधि में वापस आता है:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == CONTACTS_REQUEST_CODE){
if(resultCode == RESULT_OK){
Uri uri = data.getData();
System.out.println("uri: "+uri);
System.out.println("PHONE NUMBER: " + PhoneUtils.getContactPhoneNumber(this, uri.getLastPathSegment()));
}
}
}
कौन सा वर्ग util मेरी स्थिर कॉल:
private static final String TAG = "PhoneUtils";
public static String getContactPhoneNumber(Context context, String contactId) {
int type = ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE;
String phoneNumber = null;
String[] whereArgs = new String[] { String.valueOf(contactId), String.valueOf(type) };
Log.d(TAG, "Got contact id: "+contactId);
Cursor cursor = context.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone._ID + " = ? and " + ContactsContract.CommonDataKinds.Phone.TYPE + " = ?",
whereArgs,
null);
int phoneNumberIndex = cursor.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER);
if (cursor != null) {
Log.d(TAG, "Returned contact count: "+cursor.getCount());
try {
if (cursor.moveToFirst()) {
phoneNumber = cursor.getString(phoneNumberIndex);
}
} finally {
cursor.close();
}
}
Log.d(TAG, "Returning phone number: "+phoneNumber);
return phoneNumber;
}
जहां संपर्क Id = lookupURI.getLastPathSegment();
इतनी सरल चीज़ के लिए इतना जटिल! :-(
पी एस आप अपने मेनिफ़ेस्ट में इस अनुमति की आवश्यकता हो सकती:
<uses-permission android:name="android.permission.READ_CONTACTS" />