1

これまで、Android Sdk で提供されている Sample Syncadapter の例に従い、電話番号や名前などの連絡先の詳細を追加できましたが、syncadapter を介して住所を追加および更新する方法の例は見つかりませんでした。この点で私を助けてください。

4

1 に答える 1

1

この住所を今すぐチェックに追加してください。

    // inserUri = name add uri 
    Uri addUri = Uri.withAppendedPath(insertUri, People.ContactMethods.CONTENT_DIRECTORY);
    ContentValues cv = new ContentValues();
    cv.put(People.ContactMethods.KIND,Contacts.KIND_POSTAL/Contacts.KIND_EMAIL);
    cv.put(People.ContactMethods.DATA, mEditText.getText().toString().trim());
    cv.put(People.ContactMethods.TYPE,  People.ContactMethods.TYPE_*);
    Uri updateUri = getContentResolver().insert(addUri, cv);

そして、このコードをチェックするために更新し、

String selectProjectionAddress = ContactsContract.Data.CONTACT_ID + "=? AND " + 
        ContactsContract.Data.MIMETYPE + "='"  +
        ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE + "'" + " AND " + 
        ContactsContract.CommonDataKinds.StructuredPostal.TYPE + "=?";

if (editTextAddress.getText().toString().trim().length() > 0 ) {

     String[] args = new String[] { "yourContactsID", 
             String.valueOf(ContactsContract.CommonDataKinds.StructuredPostal.TYPE_HOME) };

     ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)             
                        .withSelection(selectProjectionAddress, args)             
                        .withValue(ContactsContract.CommonDataKinds.StructuredPostal.DATA, 
                                editTextAddress.getText().toString().trim())             
                        .build());

} 
于 2012-12-10T05:14:07.337 に答える