Java 类android.provider.ContactsContract.Contacts.Data 实例源码

项目:q-mail    文件:RecipientLoader.java   
private boolean fillContactDataFromNameAndEmail(String query, List<Recipient> recipients,
        Map<String, Recipient> recipientMap) {
    query = "%" + query + "%";

    Uri queryUri = Email.CONTENT_URI;

    String selection = Contacts.DISPLAY_NAME_PRIMARY + " LIKE ? " +
            " OR (" + Email.ADDRESS + " LIKE ? AND " + Data.MIMETYPE + " = '" + Email.CONTENT_ITEM_TYPE + "')";
    String[] selectionArgs = { query, query };
    Cursor cursor = contentResolver.query(queryUri, PROJECTION, selection, selectionArgs, SORT_ORDER);

    if (cursor == null) {
        return false;
    }

    fillContactDataFromCursor(cursor, recipients, recipientMap);

    return true;

}
项目:amap    文件:AddressServiceImpl.java   
private static void addContactToGroup(ContentResolver mResolver, int contactId, int groupId)
{
    // judge whether the contact has been in the group
    boolean b1 = ifExistContactInGroup(mResolver, contactId, groupId);
    if (b1)
    {
        // the contact has been in the group
        return;
    }
    else
    {
        ContentValues values = new ContentValues();
        values.put(ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID, contactId);
        values.put(ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID, groupId);
        values.put(ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE,
            ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE);
        mResolver.insert(ContactsContract.Data.CONTENT_URI, values);
    }
}
项目:amap    文件:AddressServiceImpl.java   
private static boolean ifExistContactInGroup(ContentResolver mResolver, int contactId, int groupId)
{
    String where =
        Data.MIMETYPE + " = '" + ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE + "' AND "
            + Data.DATA1 + " = '" + groupId + "' AND " + Data.RAW_CONTACT_ID + " = '" + contactId + "'";
    Cursor markCursor =
        mResolver.query(ContactsContract.Data.CONTENT_URI,
            new String[] {ContactsContract.Data.DISPLAY_NAME},
            where,
            null,
            null);
    if (markCursor.moveToFirst())
    {
        return true;
    }
    else
    {
        return false;
    }
}
项目:K9-MailClient    文件:RecipientLoader.java   
private void fillContactDataFromQuery(String query, List<Recipient> recipients,
        Map<String, Recipient> recipientMap) {

    ContentResolver contentResolver = getContext().getContentResolver();

    query = "%" + query + "%";
    Uri queryUri = ContactsContract.CommonDataKinds.Email.CONTENT_URI;
    String selection = Contacts.DISPLAY_NAME_PRIMARY + " LIKE ? " +
            " OR (" + Email.ADDRESS + " LIKE ? AND " + Data.MIMETYPE + " = '" + Email.CONTENT_ITEM_TYPE + "')";
    String[] selectionArgs = { query, query };
    Cursor cursor = contentResolver.query(queryUri, PROJECTION, selection, selectionArgs, SORT_ORDER);

    if (cursor == null) {
        return;
    }

    fillContactDataFromCursor(cursor, recipients, recipientMap);

    if (observerContact != null) {
        observerContact = new ForceLoadContentObserver();
        contentResolver.registerContentObserver(queryUri, false, observerContact);
    }
}
项目:NikiRun    文件:RunSetSlidePageActivity.java   
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_runset_screenslide_pager);
        setTitle("跑步设定");

        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.list_item1, Data);
        ListView listView = (ListView) findViewById(R.id.runset_listview);
        listView.setAdapter(arrayAdapter);
        listView.setOnItemClickListener(this);

        // Instantiate a ViewPager and a PagerAdapter.

        mRunSetAdapter = new RunSetPagerAdapter(this);
        mPager = (ViewPager) findViewById(R.id.runset_pager);
//        mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
        mPager.setAdapter(mRunSetAdapter); 

        mBeginRunButton = (Button) findViewById(R.id.begin_run);
        mBeginRunButton.setOnClickListener(this);

    }
项目:zone-sdk    文件:ContactsHelper.java   
/**
 * 删除单个数据,会直接删除是这个名字的人的所有信息
 *
 * @param name 用户的姓名
 * @return 是否删除成功
 */
public boolean delete(String name) {
    try {
        //根据姓名求id
        Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
        //查询到name=“name”的集合
        Cursor cursor = mResolver.query(uri, new String[]{Data._ID},
                "display_name=?", new String[]{name}, null);
        if (cursor.moveToFirst()) {
            int id = cursor.getInt(0);
            //根据id删除data中的相应数据
            mResolver.delete(uri, "display_name=?", new String[]{name});
            uri = Uri.parse("content://com.android.contacts/data");
            mResolver.delete(uri, "raw_contact_id=?", new String[]{id + ""});
            return true;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}
项目:zone-sdk    文件:ContactsHelper.java   
/**
 * 修改联系人数据
 */
public boolean update(String name, String phoneNumber) {
    try {
        //根据姓名求id,再根据id删除 
        Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
        Cursor cursor = mResolver.query(uri, new String[]{Data._ID}, "display_name=?", new String[]{name}, null);
        if (cursor.moveToFirst()) {
            int id = cursor.getInt(0);
            Uri mUri = Uri.parse("content://com.android.contacts/data");//对data表的所有数据操作
            ContentValues values = new ContentValues();
            values.put("data1", phoneNumber);
            mResolver.update(mUri, values, "mimetype=? and raw_contact_id=?", new String[]{"vnd.android.cursor.item/phone_v2", id + ""});
            return true;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}
项目:NonViewUtils    文件:ContactsHelper.java   
/**
 * 删除单个数据,会直接删除是这个名字的人的所有信息
 *
 * @param name 用户的姓名
 * @return 是否删除成功
 */
public boolean delete(String name) {
    try {
        //根据姓名求id
        Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
        ContentResolver resolver = mContext.getContentResolver();
        //查询到name=“name”的集合
        Cursor cursor = resolver.query(uri, new String[]{Data._ID},
                "display_name=?", new String[]{name}, null);
        if (cursor.moveToFirst()) {
            int id = cursor.getInt(0);
            //根据id删除data中的相应数据
            resolver.delete(uri, "display_name=?", new String[]{name});
            uri = Uri.parse("content://com.android.contacts/data");
            resolver.delete(uri, "raw_contact_id=?", new String[]{id + ""});
            return true;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}
项目:NonViewUtils    文件:ContactsHelper.java   
/**
 * 修改联系人数据
 */
public boolean update(String name, String phoneNumber) {
    try {
        //根据姓名求id,再根据id删除 
        Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
        ContentResolver resolver = mContext.getContentResolver();
        Cursor cursor = resolver.query(uri, new String[]{Data._ID}, "display_name=?", new String[]{name}, null);
        if (cursor.moveToFirst()) {
            int id = cursor.getInt(0);
            Uri mUri = Uri.parse("content://com.android.contacts/data");//对data表的所有数据操作
            ContentResolver mResolver = mContext.getContentResolver();
            ContentValues values = new ContentValues();
            values.put("data1", phoneNumber);
            mResolver.update(mUri, values, "mimetype=? and raw_contact_id=?", new String[]{"vnd.android.cursor.item/phone_v2", id + ""});
            return true;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}
项目:q-mail    文件:RecipientLoader.java   
private Cursor getNicknameCursor(String nickname) {
    nickname = "%" + nickname + "%";

    Uri queryUriForNickname = ContactsContract.Data.CONTENT_URI;

    return contentResolver.query(queryUriForNickname,
            PROJECTION_NICKNAME,
            ContactsContract.CommonDataKinds.Nickname.NAME + " LIKE ? AND " +
                    Data.MIMETYPE + " = ?",
            new String[] { nickname, ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE },
            null);
}
项目:q-mail    文件:RecipientLoader.java   
@SuppressWarnings("ConstantConditions")
private boolean fillContactDataFromNickname(String nickname, List<Recipient> recipients,
        Map<String, Recipient> recipientMap) {

    boolean hasContact = false;

    Uri queryUri = Email.CONTENT_URI;

    Cursor nicknameCursor = getNicknameCursor(nickname);

    if (nicknameCursor == null) {
        return hasContact;
    }

    try {
        while (nicknameCursor.moveToNext()) {
            String id = nicknameCursor.getString(INDEX_CONTACT_ID_FOR_NICKNAME);
            String selection = ContactsContract.Data.CONTACT_ID + " = ?";
            Cursor cursor = contentResolver
                    .query(queryUri, PROJECTION, selection, new String[] { id }, SORT_ORDER);

            String contactNickname = nicknameCursor.getString(INDEX_NICKNAME);
            fillContactDataFromCursor(cursor, recipients, recipientMap, contactNickname);

            hasContact = true;
        }
    } finally {
        nicknameCursor.close();
    }

    return hasContact;
}
项目:amap    文件:AddressServiceImpl.java   
public static void AddContact(ContentResolver mResolver, String name, String number, String groupName)
{
    Log.i("hoperun", "name= " + name + ";number=" + number);
    if (!queryFromContact(mResolver, name, number))
    {
        ContentValues values = new ContentValues();
        // 首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId
        Uri rawContactUri = mResolver.insert(RawContacts.CONTENT_URI, values);

        if (rawContactUri != null)
        {
            long rawContactId = ContentUris.parseId(rawContactUri);
            // 往data表插入姓名数据
            values.clear();
            values.put(Data.RAW_CONTACT_ID, rawContactId);
            values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);// 内容类型
            values.put(StructuredName.GIVEN_NAME, name);
            mResolver.insert(ContactsContract.Data.CONTENT_URI, values);
            // 往data表插入电话数据
            values.clear();
            values.put(Data.RAW_CONTACT_ID, rawContactId);
            values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
            values.put(Phone.NUMBER, number);
            values.put(Phone.TYPE, Phone.TYPE_MOBILE);
            mResolver.insert(ContactsContract.Data.CONTENT_URI, values);
        }
        else
        {
            Log.i("hoperun", "name= " + name + ";number=" + number);
        }

    }
    else
    {
        Log.i("hoperun", "repeat name= " + name + ";number=" + number);
    }
}
项目:SmartChart    文件:CommonUtils.java   
/**
 * 往手机通讯录插入联系人
 *
 * @param ct
 * @param name
 * @param tel
 * @param email
 */
public static void insertContact(Context ct, String name, String tel, String email) {
    ContentValues values = new ContentValues();
    // 首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId
    Uri rawContactUri = ct.getContentResolver().insert(RawContacts.CONTENT_URI, values);
    long rawContactId = ContentUris.parseId(rawContactUri);
    // 往data表入姓名数据
    if (!TextUtils.isEmpty(tel)) {
        values.clear();
        values.put(Data.RAW_CONTACT_ID, rawContactId);
        values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);// 内容类型
        values.put(StructuredName.GIVEN_NAME, name);
        ct.getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
    }
    // 往data表入电话数据
    if (!TextUtils.isEmpty(tel)) {
        values.clear();
        values.put(Data.RAW_CONTACT_ID, rawContactId);
        values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);// 内容类型
        values.put(Phone.NUMBER, tel);
        values.put(Phone.TYPE, Phone.TYPE_MOBILE);
        ct.getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
    }
    // 往data表入Email数据
    if (!TextUtils.isEmpty(email)) {
        values.clear();
        values.put(Data.RAW_CONTACT_ID, rawContactId);
        values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);// 内容类型
        values.put(Email.DATA, email);
        values.put(Email.TYPE, Email.TYPE_WORK);
        ct.getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
    }
}
项目:android-testing-runtime-permissions    文件:MainActivity.java   
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    String[] columns = {Phone._ID, Phone.DISPLAY_NAME_PRIMARY, Phone.DATA};
    String selection = Data.MIMETYPE + " = '" + Phone.CONTENT_ITEM_TYPE + "'";
    String orderBy = Phone.DISPLAY_NAME_PRIMARY + " ASC";
    return new CursorLoader(this, Phone.CONTENT_URI, columns, selection, null, orderBy);
}
项目:AndroidBase    文件:ContactsHelper.java   
/**
 * 添加一个联系人数据
 *
 * @return 返回true表示添加成功,false表示失败
 */
public boolean insert(String name, String phoneNumber) {
    //根据号码找数据,如果存在则不添加
    if (getNameByPhoneNumber(phoneNumber) == null) {
        //插入raw_contacts表,并获取_id属性
        Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
        ContentResolver resolver = mContext.getContentResolver();
        ContentValues values = new ContentValues();
        long contact_id = ContentUris.parseId(resolver.insert(uri, values));
        //插入data表
        uri = Uri.parse("content://com.android.contacts/data");
        //添加姓名
        values.put("raw_contact_id", contact_id);
        values.put(Data.MIMETYPE, "vnd.android.cursor.item/name");
        values.put("data2", name);
        resolver.insert(uri, values);
        values.clear();
        //添加手机号码
        values.put("raw_contact_id", contact_id);
        values.put(Data.MIMETYPE, "vnd.android.cursor.item/phone_v2");
        values.put("data2", "2");    //2表示手机
        values.put("data1", phoneNumber);
        resolver.insert(uri, values);
        values.clear();
        return true;
    } else {
        return false;
    }
}
项目:AndroidBase    文件:ContactsHelper.java   
/**
 * 删除单个数据,会直接删除是这个名字的人的所有信息
 *
 * @param name 用户的姓名
 * @return 是否删除成功
 */
public boolean delete(String name) {
    Cursor cursor = null;
    try {
        //根据姓名求id
        Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
        ContentResolver resolver = mContext.getContentResolver();
        //查询到name=“name”的集合
        cursor = resolver.query(uri, new String[]{Data._ID},
                "display_name=?", new String[]{name}, null);
        if (cursor != null) {
            if (cursor.moveToFirst()) {
                int id = cursor.getInt(0);
                //根据id删除data中的相应数据
                resolver.delete(uri, "display_name=?", new String[]{name});
                uri = Uri.parse("content://com.android.contacts/data");
                resolver.delete(uri, "raw_contact_id=?", new String[]{id + ""});
                return true;
            }
        }

    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        if (cursor != null) {
            cursor.close();
        }
    }
    return false;
}
项目:AndroidBase    文件:ContactsHelper.java   
/**
 * 修改联系人数据
 */
public boolean update(String name, String phoneNumber) {
    Cursor cursor = null;
    try {
        //根据姓名求id,再根据id删除 
        Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
        ContentResolver resolver = mContext.getContentResolver();
        cursor = resolver.query(uri, new String[]{Data._ID}, "display_name=?", new String[]{name}, null);
        if (cursor != null) {
            if (cursor.moveToFirst()) {
                int id = cursor.getInt(0);
                Uri mUri = Uri.parse("content://com.android.contacts/data");//对data表的所有数据操作
                ContentResolver mResolver = mContext.getContentResolver();
                ContentValues values = new ContentValues();
                values.put("data1", phoneNumber);
                mResolver.update(mUri, values, "mimetype=? and raw_contact_id=?", new String[]{"vnd.android.cursor.item/phone_v2", id + ""});
                return true;
            }
        }

    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        if (cursor != null) {
            cursor.close();
        }
    }
    return false;
}
项目:zone-sdk    文件:ContactsHelper.java   
/**
 * 添加一个联系人数据
 *
 * @return 返回true表示添加成功,false表示失败
 */
public boolean insert(String name, String phoneNumber) {
    //根据号码找数据,如果存在则不添加
    if (getNameByPhoneNumber(phoneNumber) == null) {
        //插入raw_contacts表,并获取_id属性
        Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
        ContentValues values = new ContentValues();
        long contact_id = ContentUris.parseId(mResolver.insert(uri, values));
        //插入data表
        uri = Uri.parse("content://com.android.contacts/data");
        //添加姓名
        values.put("raw_contact_id", contact_id);
        values.put(Data.MIMETYPE, "vnd.android.cursor.item/name");
        values.put("data2", name);
        mResolver.insert(uri, values);
        values.clear();
        //添加手机号码
        values.put("raw_contact_id", contact_id);
        values.put(Data.MIMETYPE, "vnd.android.cursor.item/phone_v2");
        values.put("data2", "2");    //2表示手机
        values.put("data1", phoneNumber);
        mResolver.insert(uri, values);
        values.clear();
        return true;
    } else {
        return false;
    }
}
项目:NonViewUtils    文件:ContactsHelper.java   
/**
 * 添加一个联系人数据
 *
 * @return 返回true表示添加成功,false表示失败
 */
public boolean insert(String name, String phoneNumber) {
    //根据号码找数据,如果存在则不添加
    if (getNameByPhoneNumber(phoneNumber) == null) {
        //插入raw_contacts表,并获取_id属性
        Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
        ContentResolver resolver = mContext.getContentResolver();
        ContentValues values = new ContentValues();
        long contact_id = ContentUris.parseId(resolver.insert(uri, values));
        //插入data表
        uri = Uri.parse("content://com.android.contacts/data");
        //添加姓名
        values.put("raw_contact_id", contact_id);
        values.put(Data.MIMETYPE, "vnd.android.cursor.item/name");
        values.put("data2", name);
        resolver.insert(uri, values);
        values.clear();
        //添加手机号码
        values.put("raw_contact_id", contact_id);
        values.put(Data.MIMETYPE, "vnd.android.cursor.item/phone_v2");
        values.put("data2", "2");    //2表示手机
        values.put("data1", phoneNumber);
        resolver.insert(uri, values);
        values.clear();
        return true;
    } else {
        return false;
    }
}
项目:amap    文件:AddressServiceImpl.java   
public static boolean queryFromContact(ContentResolver mResolver, String name, String number)
{
    ContentValues values = new ContentValues();
    // 首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId
    String where = Data.MIMETYPE + "=? and " + StructuredName.GIVEN_NAME + "=?";
    Cursor mCursor =
        mResolver.query(ContactsContract.Data.CONTENT_URI, null, where, new String[] {
            StructuredName.CONTENT_ITEM_TYPE, name}, null);
    System.out.println("--------------------phone--------------------1");
    if (mCursor != null)
    {
        while (mCursor.moveToNext())
        {
            String rowId = mCursor.getString(mCursor.getColumnIndex(Data.RAW_CONTACT_ID));

            String phoneWhere = Data.MIMETYPE + "=? and " + Phone.NUMBER + "=?";
            Cursor mPhoneCur =
                mResolver.query(ContactsContract.Data.CONTENT_URI, null, phoneWhere, new String[] {
                    Phone.CONTENT_ITEM_TYPE, number}, null);
            if (mPhoneCur != null)
            {
                while (mPhoneCur.moveToNext())
                {
                    String phoneRowId = mPhoneCur.getString(mPhoneCur.getColumnIndex(Data.RAW_CONTACT_ID));
                    if (rowId.equals(phoneRowId))
                    {
                        mPhoneCur.close();
                        mCursor.close();
                        return true;
                    }
                }
            }
            if (mPhoneCur != null)
            {
                mPhoneCur.close();
            }
        }
    }
    if (mCursor != null)
    {
        mCursor.close();
    }
    return false;
}