मैंने अपने द्वारा बनाए गए खाते में कुछ कच्चे संपर्क जोड़े। क्या कोई जानता है कि मैं अपने डेटा फ़ील्ड तक कैसे पहुंच सकता हूं?कच्चे संपर्क डेटा तक पहुंच
Log.i(TAG, "Adding contact: " + username);
ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();
// create the contact
ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(RawContacts.CONTENT_URI);
builder.withValue(RawContacts.ACCOUNT_NAME, account.name);
builder.withValue(RawContacts.ACCOUNT_TYPE, account.type);
builder.withValue(RawContacts.SYNC1, username);
operationList.add(builder.build());
// set display name
builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);
builder.withValueBackReference(ContactsContract.CommonDataKinds.StructuredName.RAW_CONTACT_ID, 0);
builder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
builder.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name);
operationList.add(builder.build());
// set profile data
builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);
builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0);
builder.withValue(ContactsContract.Data.MIMETYPE, "vnd.android.cursor.item/vnd.net.myapp.android.profile");
builder.withValue(ContactsContract.Data.DATA1, username);
builder.withValue(ContactsContract.Data.DATA2, context.getString(R.string.app_name) + " Profile");
builder.withValue(ContactsContract.Data.DATA3, "View profile");
operationList.add(builder.build());
कर्सर मैं अपने संपर्कों प्राप्त करने के लिए उपयोग करते हैं::
private Cursor getContactsCursor(CharSequence constraint) {
Uri uri = RawContacts.CONTENT_URI.buildUpon().appendQueryParameter(RawContacts.ACCOUNT_NAME, getString(R.string.app_name)).appendQueryParameter(RawContacts.ACCOUNT_TYPE, getString(R.string.ACCOUNT_TYPE)).build();
String[] projection = null;//new String[] { ContactsContract.Contacts.DISPLAY_NAME };
String selection = null;
if (constraint != null && constraint.length() > 0)
selection = ContactsContract.Contacts.DISPLAY_NAME + " LIKE '%" + constraint + "%'" ;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
Cursor cursor = getContentResolver().query(uri, projection, selection, null , sortOrder);
return cursor;
}
दुर्भाग्य से, मैं Data1 क्षेत्र की जरूरत है, जो कर्सर से एक नहीं है
यह मैं कैसे संपर्क जोड़ा गया है कॉलम। मुझे लगता है कि समस्या RawContacts.CONTENT_URI Uri के साथ है। इसके बजाय मुझे क्या उपयोग करना चाहिए?
"सभी संबंधित डेटा के साथ एक कच्चे संपर्क को पढ़ने के लिए सबसे अच्छा तरीका है ..." (http [आप इस की कोशिश की है]: //stackoverflow.com/a/5372302/940096) – Praveenkumar