kamran_14
یک شنبه 16 دی 1397, 20:59 عصر
سلام
خسته نباشید
Content Provider
این کد برای اضافه کردن یک مخاطبه
من اصلا متوجه این کد نشدم دوستان
به نظر می آد Content provider خیلی سخت باشه
هر ops.add در واقع یک ستون رو اد میکنه؟
میشه این کدرو توضیح بدید. ممنون:
private void addContacts(String name,String phone) {
Cursor cursor= getContentResolver().query(ContactsContract.Contac ts.CONTENT_URI,null,null,null,null);
int count=cursor.getCount();
if (count>0)
{
while ((cursor.moveToNext())) {
String existName = cursor.getString(cursor.getColumnIndex(ContactsCon tract.Contacts.DISPLAY_NAME));
if (existName.equals(name)) {
Toast.makeText(getApplicationContext(), "Sorry exists", Toast.LENGTH_LONG).show();
return;
}
}
ArrayList<ContentProviderOperation> ops=new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex=ops.size();
ops.add(ContentProviderOperation.newInsert(Contact sContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TY PE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NA ME, null).build());
ops.add(ContentProviderOperation.newInsert(Contact sContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_ CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CO NTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Struct uredName.DISPLAY_NAME, name).build());
ops.add(ContentProviderOperation.newInsert(Contact sContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_ CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITE M_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone. NUMBER, phone)
.withValue(ContactsContract.CommonDataKinds.Phone. TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE ).build());
try {
getContentResolver().applyBatch(ContactsContract.A UTHORITY,ops);
} catch (RemoteException e) {
e.printStackTrace();
} catch (OperationApplicationException e) {
e.printStackTrace();
}
Toast.makeText(this,"Created",Toast.LENGTH_LONG).show();
}
}
خسته نباشید
Content Provider
این کد برای اضافه کردن یک مخاطبه
من اصلا متوجه این کد نشدم دوستان
به نظر می آد Content provider خیلی سخت باشه
هر ops.add در واقع یک ستون رو اد میکنه؟
میشه این کدرو توضیح بدید. ممنون:
private void addContacts(String name,String phone) {
Cursor cursor= getContentResolver().query(ContactsContract.Contac ts.CONTENT_URI,null,null,null,null);
int count=cursor.getCount();
if (count>0)
{
while ((cursor.moveToNext())) {
String existName = cursor.getString(cursor.getColumnIndex(ContactsCon tract.Contacts.DISPLAY_NAME));
if (existName.equals(name)) {
Toast.makeText(getApplicationContext(), "Sorry exists", Toast.LENGTH_LONG).show();
return;
}
}
ArrayList<ContentProviderOperation> ops=new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex=ops.size();
ops.add(ContentProviderOperation.newInsert(Contact sContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TY PE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NA ME, null).build());
ops.add(ContentProviderOperation.newInsert(Contact sContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_ CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CO NTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Struct uredName.DISPLAY_NAME, name).build());
ops.add(ContentProviderOperation.newInsert(Contact sContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_ CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITE M_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone. NUMBER, phone)
.withValue(ContactsContract.CommonDataKinds.Phone. TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE ).build());
try {
getContentResolver().applyBatch(ContactsContract.A UTHORITY,ops);
} catch (RemoteException e) {
e.printStackTrace();
} catch (OperationApplicationException e) {
e.printStackTrace();
}
Toast.makeText(this,"Created",Toast.LENGTH_LONG).show();
}
}