मैं मौजूदा संपर्क पर जानकारी का एक टुकड़ा डालने और अपडेट करने का प्रयास कर रहा हूं इसलिए मैंने कार्यक्षमता विकसित करने के लिए नमूना अनुप्रयोग बनाया है। मैं चाहता हूं कि मेरा नमूना ऐप करना है (या यदि मौजूद है) संपर्क में एक ईमेल पता अपडेट करना है।संपर्क जानकारी संशोधित करना
मैं तो जैसे प्रणाली आशय के माध्यम से संपर्क चुनकर हूँ:
startActivityForResult(new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI), PICK_CONTACT_REQUEST);
यूआरआई जो दिया जाता है Contact
का है जो चुनी है और इस रूप में आता है किया गया था (RawContact
?): content://com.android.contacts/contacts/lookup/0r2-2A90214945/2
।
मैं निम्नलिखित कोड का प्रदर्शन करके इस पर Data
(RawContact
?) आइटम के पीछे सब खींच सकते हैं: इस से
Cursor cursor = contentResolver.query(mContactUri, null, null, null, null);
try {
if (cursor.moveToFirst()) {
for(int i=0; i < cursor.getColumnCount(); i++) {
String message = cursor.getColumnName(i);
Log.v("", message);
}
}
} finally {
cursor.close();
}
मैं अगर संपर्क पहले से ही एक CommonDataTypes.EmailData
सदस्य है निर्धारित करने के लिए सक्षम होना चाहिए:
cursor.getColumnIndex(CommonDataKinds.Email.CONTENT_ITEM_TYPE) != -1;
और फिर या तो Insert
या Update
Data के लिए निम्न में से एक कार्य करें:
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(mContactUri)
.withValue(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE)
.withValue(Email.DISPLAY_NAME, "[email protected]")
.withValue(Email.TYPE, Email.TYPE_HOME)
.build());
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
लेकिन यह मुझे एक अपवाद देता है: java.lang.UnsupportedOperationException: URI: content://com.android.contacts/contacts/lookup/0r2-2A90314945/2, calling user:
उम्मीद है कि किसी को देख सकते हैं कि मैं क्या नहीं छूटा है।
पुनश्च, मैं इन अनुमतियों का उपयोग कर रहा:
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
ठीक है, मैं इसे हटा दूंगा। धन्यवाद –