2012-05-13 9 views
6

作成したアカウントに生の連絡先をいくつか追加しました。 データフィールドへのアクセス方法を知っている人はいますか?生の連絡先データにアクセスする

これは私が連絡先を追加する方法である:私は私の連絡先を取得するために使用

 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であると思います。 代わりに何を使うべきですか? : -

+0

「...関連するすべてのデータと一緒に生の接触を読み込むための最良の方法は、」(HTTP [あなたはこれを試してみました] //stackoverflow.com/a/5372302/940096) – Praveenkumar

答えて

関連する問題