我的数据库1

 

public class ContactDbHelper
{
    /**
     * TAG
     */
    public static final String TAG = "ContactDbHelper";
   
    /**
     * ContentResolver
     */
    private final ContentResolver mContentResolver;
   
    /**
     * contactManager
     */
    private final ContactManager contactManager;
   
    /**
     * <默认构造函数>
     * @param context context
     */
    public ContactDbHelper(Context context)
    {
        Log.v(TAG, "create ContactDbHelper");
        mContentResolver = context.getContentResolver();
        contactManager = new ContactManager(context);
    }
   
    /**
     * 获取所有联系人信息
     * <功能详细描述>
     * @return List<ContactBean>
     * @see [类、类#方法、类#成员]
     */
    public List<ContactBean> queryAllContacts()
    {
        List<ContactBean> contacts = null;
        Cursor cur = mContentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
        if (cur.getCount() > 0)
        {
            contacts = new ArrayList<ContactBean>();
            ContactBean contactBean = null;
            while (cur.moveToNext())
            {
                contactBean = new ContactBean();
               
                // id
                String id = queryId(cur);
                Log.v(TAG, "id:" + id);
               
                // name
                String name = queryName(cur);
                Log.v(TAG, "name:" + name);
               
                // rawId
                String rawId = queryRawId(id);
                Log.v(TAG, "rawId:" + rawId);
               
                // phoneNumberList  错的的。
                List<PhoneNumberBean> phoneNumberList = queryPhoneNumberList(cur, rawId);
               
                // photo
                Bitmap photo = queryPhoto(id);
               
                contactBean.id = id;
                contactBean.rawId = rawId;
                contactBean.name = name;
                contactBean.phoneNumberList = phoneNumberList;
                contactBean.photo = photo;
               
                contacts.add(contactBean);
            }
        }
       
        cur.close();
       
        return sortList(contacts);
    }
   
    /**
     * 获取Id
     * <功能详细描述>
     * @param cursor cursor
     * @return String
     * @see [类、类#方法、类#成员]
     */
    private String queryId(Cursor cursor)
    {
        return cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
    }
   
    /**
     * 获取Name
     * <功能详细描述>
     * @param cursor cursor
     * @return String
     * @see [类、类#方法、类#成员]
     */
    private String queryName(Cursor cursor)
    {
        return cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
    }
   
    /**
     * 获取RawId
     * <功能详细描述>
     * @param id id
     * @return String
     * @see [类、类#方法、类#成员]
     */
    private String queryRawId(String id)
    {
        String rawId = "";
        Cursor rawContactsIdCur =
            mContentResolver.query(RawContacts.CONTENT_URI,
                null,
                RawContacts.CONTACT_ID + " = ?",
                new String[] {id},
                null);
        if (rawContactsIdCur.moveToFirst())
        {
            rawId = rawContactsIdCur.getString(rawContactsIdCur.getColumnIndex(RawContacts._ID));
        }
        rawContactsIdCur.close();
        return rawId;
    }
   
    /**
     * 获取号码列表
     * <功能详细描述>
     * @param cursor cursor
     * @param rawId rawId
     * @return List<PhoneNumberBean>
     * @see [类、类#方法、类#成员]
     */
    private List<PhoneNumberBean> queryPhoneNumberList(Cursor cursor, String rawId)
    {
        List<PhoneNumberBean> phoneNumberList = null;
        if (Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
        {
           
            phoneNumberList = new ArrayList<PhoneNumberBean>();
            Cursor phoneCur =
                mContentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                    null,
                    ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID + " = ?",
                    new String[] {rawId},
                    null);
            PhoneNumberBean phoneNumberBean = null;
            while (phoneCur.moveToNext())
            {
                phoneNumberBean = new PhoneNumberBean();
                String number =
                    phoneCur.getString(phoneCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                String numberType =
                    phoneCur.getString(phoneCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
                phoneNumberBean.phoneNumber = number;
               
                //                if ("1".equals(numberType))
                //                {
                //                    phoneNumberBean.phoneType = "家庭";
                //                }
                //                else if ("2".equals(numberType))
                //                {
                //                    phoneNumberBean.phoneType = "手机";
                //                }
                //                else if ("3".equals(numberType))
                //                {
                //                    phoneNumberBean.phoneType = "单位";
                //                }
               
                phoneNumberBean.phoneType = numberType;
               
                phoneNumberList.add(phoneNumberBean);
               
                Log.v(TAG, "numberType:" + numberType);
                Log.v(TAG, "number:" + number);
            }
            phoneCur.close();
        }
       
        return phoneNumberList;
    }
   
    /**
     * 获取头像
     * <功能详细描述>
     * @param id id
     * @return Bitmap
     * @see [类、类#方法、类#成员]
     */
    private Bitmap queryPhoto(String id)
    {
       
        Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, Long.parseLong(id));
        InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(mContentResolver, uri);
        return BitmapFactory.decodeStream(input);
    }
   
    /**
     * 增加联系人
     * <功能详细描述>
     * @param contactBean 联系人信息Bean
     * @return ContactBean
     * @see [类、类#方法、类#成员]
     */
    public ContactBean insert(ContactBean contactBean)
    {
        String name = contactBean.name;
        List<PhoneNumberBean> phoneNumberList = contactBean.phoneNumberList;
        String numberHome = "";
        String numberMobile = "";
        String numberWork = "";
       
        Bitmap photo = contactBean.photo;
       
        PhoneNumberBean mPhoneNumberBean;
        for (int i = 0; i < phoneNumberList.size(); i++)
        {
            mPhoneNumberBean = phoneNumberList.get(i);
            String phoneType = mPhoneNumberBean.phoneType;
            String phoneNumber = mPhoneNumberBean.phoneNumber;
            //            if ("家庭".equals(phoneType))
            //            {
            //                numberHome = phoneNumber;
            //            }
            //            else if ("手机".equals(phoneType))
            //            {
            //                numberMobile = phoneNumber;
            //            }
            //            else if ("单位".equals(phoneType))
            //            {
            //                numberWork = phoneNumber;
            //            }
           
            if ("1".equals(phoneType))
            {
                numberHome = phoneNumber;
            }
            else if ("2".equals(phoneType))
            {
                numberMobile = phoneNumber;
            }
            else if ("3".equals(phoneType))
            {
                numberWork = phoneNumber;
            }
        }
       
        if ("".equals(name) && "".equals(numberHome) && "".equals(numberMobile) && "".equals(numberWork)
            && (null == photo))
        {
            return null;
        }
       
        //        ContentValues values = new ContentValues();
        //       
        //        // 下面的操作会根据RawContacts表中已有的rawContactId使用情况自动生成新联系人的rawContactId           
        //        Uri rawContactUri = mContentResolver.insert(RawContacts.CONTENT_URI, values);
        //        long rawContactId = ContentUris.parseId(rawContactUri);
        //       
        //        saveName(values, name, rawContactId);
        //        saveNumber(values, numberHome, rawContactId, Phone.TYPE_HOME);
        //        saveNumber(values, numberMobile, rawContactId, Phone.TYPE_MOBILE);
        //        saveNumber(values, numberWork, rawContactId, Phone.TYPE_WORK);
        //        savePhoto(values, photo, rawContactId);
        //       
        //        contactBean.rawId = String.valueOf(rawContactId);
        //        return contactBean;
       
        ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
       
        ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
            .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
            .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
            .withValue(ContactsContract.RawContacts.AGGREGATION_MODE,
                ContactsContract.RawContacts.AGGREGATION_MODE_DISABLED)
            .build());
       
        saveName(name, ops);
        saveNumber(numberHome, Phone.TYPE_HOME, ops);
        saveNumber(numberMobile, Phone.TYPE_MOBILE, ops);
        saveNumber(numberWork, Phone.TYPE_WORK, ops);
        savePhoto(photo, ops);
        long rawContactId = 0;
        try
        {
            ContentProviderResult[] results = mContentResolver.applyBatch(ContactsContract.AUTHORITY, ops);
            if (results.length >= 1)
            {
                rawContactId = ContentUris.parseId(results[0].uri);
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
       
        contactBean.rawId = String.valueOf(rawContactId);
        Log.v(TAG, "idid:" + rawContactId);
        contactManager.updateByAdd(name, rawContactId, phoneNumberList, photo, false);
        return contactBean;
    }
   
    /**
     * 保存姓名
     * <功能详细描述>
     * @param name 姓名
     * @param ops ArrayList<ContentProviderOperation>
     * @see [类、类#方法、类#成员]
     */
    private void saveName(String name, ArrayList<ContentProviderOperation> ops)
    {
        if (null != name && !"".equals(name))
        {
            ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
                .withValue(ContactsContract.Data.MIMETYPE,
                    ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
                .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name)
                .build());
        }
    }
   
    /**
     * 保存号码
     * <功能详细描述>
     * @param number 号码
     * @param type 号码类型
     * @param ops ArrayList<ContentProviderOperation>
     * @see [类、类#方法、类#成员]
     */
    private void saveNumber(String number, int type, ArrayList<ContentProviderOperation> ops)
    {
        if (null != number && !"".equals(number))
        {
            ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
                .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
                .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, number)
                .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, type)
                .build());
        }
    }
   
    /**
     * 保存头像
     * <功能详细描述>
     * @param photo 头像图片
     * @param ops ArrayList<ContentProviderOperation>
     * @see [类、类#方法、类#成员]
     */
    private void savePhoto(Bitmap photo, ArrayList<ContentProviderOperation> ops)
    {
        if (null != photo)
        {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            photo.compress(CompressFormat.PNG, 100, baos);
            byte[] bytes = baos.toByteArray();
            if (bytes != null)
            {
                ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
                    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
                    .withValue(ContactsContract.Data.MIMETYPE,

                    ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, bytes)
                    .build());
               
            }
        }
    }
   
    /**
     * 保存姓名,用于更新
     * <功能详细描述>
     * @param values values
     * @param name 姓名
     * @param rawContactId rawContactId
     * @see [类、类#方法、类#成员]
     */
    private void saveName(ContentValues values, String name, long rawContactId)
    {
        if (null != name && !"".equals(name))
        {
            values.clear();
            values.put(Data.RAW_CONTACT_ID, rawContactId);
            values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
            values.put(StructuredName.GIVEN_NAME, name);
            mContentResolver.insert(ContactsContract.Data.CONTENT_URI, values);
        }
    }
   
    /**
     * 保存号码,用于更新
     * <功能详细描述>
     * @param values values
     * @param number 号码
     * @param rawContactId rawContactId
     * @param type 号码类型
     * @see [类、类#方法、类#成员]
     */
    private void saveNumber(ContentValues values, String number, long rawContactId, int type)
    {
        if (null != number && !"".equals(number))
        {
            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, type);
            mContentResolver.insert(ContactsContract.Data.CONTENT_URI, values);
        }
    }
   
    /**
     * 保存头像,用于更新
     * <功能详细描述>
     * @param values values
     * @param photo 头像图片
     * @param rawContactId rawContactId
     * @see [类、类#方法、类#成员]
     */
    private void savePhoto(ContentValues values, Bitmap photo, long rawContactId)
    {
        if (null != photo)
        {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            photo.compress(CompressFormat.PNG, 100, baos);
            byte[] bytes = baos.toByteArray();
           
            values.clear();
            values.put(Data.RAW_CONTACT_ID, rawContactId);
            values.put(Data.MIMETYPE, Photo.CONTENT_ITEM_TYPE);
            values.put(Photo.PHOTO, bytes);
            mContentResolver.insert(ContactsContract.Data.CONTENT_URI, values);
        }
    }
   
    /**
     * 根据rawContactId删除联系人
     * <功能详细描述>
     * @param rawContactId rawContactId
     * @see [类、类#方法、类#成员]
     */
    public void delete(long rawContactId)
    {
        mContentResolver.delete(ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId), null, null);
        contactManager.updateByDelete(rawContactId);
    }
   
    /**
     * 根据rawContactId更新联系人
     * <功能详细描述>
     * @param rawContactId rawContactId
     * @param contactBean 新联系人信息Bean
     * @see [类、类#方法、类#成员]
     */
    public void update(String rawContactId, ContactBean contactBean)
    {
        String name = contactBean.name;
        List<PhoneNumberBean> phoneNumberList = contactBean.phoneNumberList;
        String numberHome = "";
        String numberMobile = "";
        String numberWork = "";
       
        Bitmap photo = contactBean.photo;
       
        PhoneNumberBean mPhoneNumberBean = null;
        String phoneType = "";
        String phoneNumber = "";
        for (int i = 0; i < phoneNumberList.size(); i++)
        {
            mPhoneNumberBean = phoneNumberList.get(i);
            phoneType = mPhoneNumberBean.phoneType;
            phoneNumber = mPhoneNumberBean.phoneNumber;
            //            if ("家庭".equals(phoneType))
            //            {
            //                numberHome = phoneNumber;
            //            }
            //            else if ("手机".equals(phoneType))
            //            {
            //                numberMobile = phoneNumber;
            //            }
            //            else if ("单位".equals(phoneType))
            //            {
            //                numberWork = phoneNumber;
            //            }
           
            if ("1".equals(phoneType))
            {
                numberHome = phoneNumber;
            }
            else if ("2".equals(phoneType))
            {
                numberMobile = phoneNumber;
            }
            else if ("3".equals(phoneType))
            {
                numberWork = phoneNumber;
            }
           
        }
       
        ContentValues values = new ContentValues();
       
        //        updateName(values, name, rawContactId);
        //        updateNumber(values, numberHome, rawContactId, Phone.TYPE_HOME);
        //        updateNumber(values, numberMobile, rawContactId, Phone.TYPE_MOBILE);
        //        updateNumber(values, numberWork, rawContactId, Phone.TYPE_WORK);
        //        updatePhoto(values, photo, rawContactId);
       
        String where = ContactsContract.Data.RAW_CONTACT_ID + " = ? ";
        String[] whereParams = new String[] {rawContactId};
        mContentResolver.delete(ContactsContract.Data.CONTENT_URI, where, whereParams);
        saveName(values, name, Long.parseLong(rawContactId));
        saveNumber(values, numberHome, Long.parseLong(rawContactId), Phone.TYPE_HOME);
        saveNumber(values, numberMobile, Long.parseLong(rawContactId), Phone.TYPE_MOBILE);
        saveNumber(values, numberWork, Long.parseLong(rawContactId), Phone.TYPE_WORK);
        savePhoto(values, photo, Long.parseLong(rawContactId));
        long rawId = Long.parseLong(rawContactId);
        contactManager.updateByAdd(name, rawId, phoneNumberList, photo, true);
    }
   
    //    /**
    //     * 更新姓名
    //     * <功能详细描述>
    //     * @param values values
    //     * @param name 姓名
    //     * @param rawContactId rawContactId
    //     * @see [类、类#方法、类#成员]
    //     */
    //    public void updateName(ContentValues values, String name, String rawContactId)
    //    {
    //        Log.v(TAG, "update name:" + name);
    //        values.clear();
    //        values.put(StructuredName.GIVEN_NAME, name);
    //        String where = ContactsContract.Data.RAW_CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
    //        String[] whereParams = new String[] {rawContactId, StructuredName.CONTENT_ITEM_TYPE,};
    //        mContentResolver.update(ContactsContract.Data.CONTENT_URI, values, where, whereParams);
    //       
    //    }
    //   
    //    /**
    //     * 更新号码
    //     * <功能详细描述>
    //     * @param values values
    //     * @param number 号码
    //     * @param rawContactId rawContactId
    //     * @param type 号码类型
    //     * @see [类、类#方法、类#成员]
    //     */
    //    public void updateNumber(ContentValues values, String number, String rawContactId, int type)
    //    {
    //        Log.v(TAG, "update number:" + number + " type:" + type);
    //        values.clear();
    //        values.put(Phone.NUMBER, number);
    //        String where =
    //            ContactsContract.Data.RAW_CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ? AND "
    //                + Phone.TYPE + " = ?";
    //        String[] whereParams = new String[] {rawContactId, Phone.CONTENT_ITEM_TYPE, String.valueOf(type)};
    //        mContentResolver.update(ContactsContract.Data.CONTENT_URI, values, where, whereParams);
    //       
    //    }
    //   
    //    /**
    //     * 更新头像
    //     * <功能详细描述>
    //     * @param values values
    //     * @param photo 头像
    //     * @param rawContactId rawContactId
    //     * @see [类、类#方法、类#成员]
    //     */
    //    public void updatePhoto(ContentValues values, Bitmap photo, String rawContactId)
    //    {
    //       
    //        if (null != photo)
    //        {
    //            Log.v(TAG, "update photo");
    //            ByteArrayOutputStream baos = new ByteArrayOutputStream();
    //            photo.compress(CompressFormat.JPEG, 50, baos);
    //            byte[] bytes = baos.toByteArray();
    //           
    //            values.clear();
    //            values.put(Photo.PHOTO, bytes);
    //            String where = ContactsContract.Data.RAW_CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
    //            String[] whereParams = new String[] {rawContactId, Photo.CONTENT_ITEM_TYPE,};
    //            mContentResolver.update(ContactsContract.Data.CONTENT_URI, values, where, whereParams);
    //        }
    //    }
   
    /**
     * 根据号码查询联系人信息
     * <功能详细描述>
     * @param number 号码
     * @return PhoneNumberBean
     * @see [类、类#方法、类#成员]
     */
    public PhoneNumberBean queryContactInfoByNumber(String number)
    {
        PhoneNumberBean phoneNumberBean = new PhoneNumberBean();
        //        String[] projection =
        //            {ContactsContract.PhoneLookup.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER};
       
        Cursor cursor =
            mContentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                null,
                ContactsContract.CommonDataKinds.Phone.NUMBER + " = '" + number + "'",
                null,
                null);
       
        if (cursor == null)
        {
            Log.v(TAG, "getPeople null");
            return null;
        }
        Log.v(TAG, "getPeople cursor.getCount() = " + cursor.getCount());
        if (0 == cursor.getCount())
        {
            Log.v(TAG, "no people has this number");
            return null;
        }
        // for (int i = 0; i < cursor.getCount(); i++) {
        // cursor.moveToPosition(i);
        //默认查询第一个联系人姓名,这点参照android2.2自带联系人应用的处理方式
        cursor.moveToPosition(0);
       
        phoneNumberBean.phoneNumber = number;
        Log.v(TAG, "number:" + number);
        phoneNumberBean.id =
            cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID));
        Log.v(TAG, "id:" + phoneNumberBean.id);
        phoneNumberBean.cached_name =
            cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME));
        Log.v(TAG, "cached_name:" + phoneNumberBean.cached_name);
       
        phoneNumberBean.phoneType =
            cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
        Log.v(TAG, "phoneType:" + phoneNumberBean.phoneType);
       
        // }
        cursor.close();
        return phoneNumberBean;
    }
   
    /**
     * 根据号码查询联系人详细信息
     * <功能详细描述>
     * @param number 号码
     * @return ContactBean
     * @see [类、类#方法、类#成员]
     */
    public ContactBean queryDetailByNumber(String number)
    {
        ContactBean contactBean = new ContactBean();
       
        Cursor cursor =
            mContentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                null,
                ContactsContract.CommonDataKinds.Phone.NUMBER + " = '" + number + "'",
                null,
                null);
       
        if (cursor == null)
        {
            Log.v(TAG, "getPeople null");
            return null;
        }
        Log.v(TAG, "getPeople cursor.getCount() = " + cursor.getCount());
        if (0 == cursor.getCount())
        {
            Log.v(TAG, "no people has this number");
            return null;
        }
        contactBean.phoneNumber = number;
        cursor.moveToPosition(0);
       
        String id = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID));
        String rawId = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID));
        contactBean.id = id;
        contactBean.rawId = rawId;
       
        String name = cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME));
        contactBean.name = name;
       
        cursor.close();
       
        List<PhoneNumberBean> phoneNumberList = new ArrayList<PhoneNumberBean>();
        Cursor phoneCur =
            mContentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                null,
                ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID + " = ?",
                new String[] {rawId},
                null);
        PhoneNumberBean phoneNumberBean = null;
        while (phoneCur.moveToNext())
        {
            phoneNumberBean = new PhoneNumberBean();
            String bufNumber =
                phoneCur.getString(phoneCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            String numberType =
                phoneCur.getString(phoneCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
           
            phoneNumberBean.phoneNumber = bufNumber;
           
            phoneNumberBean.phoneType = numberType;
           
            phoneNumberList.add(phoneNumberBean);
           
            Log.v(TAG, "numberType:" + numberType);
            Log.v(TAG, "number:" + bufNumber);
        }
        phoneCur.close();
        contactBean.phoneNumberList = phoneNumberList;
       
        Log.v(TAG, "iiiiiiiiid:" + id);
       
        Bitmap photo = queryPhoto(id);
        contactBean.photo = photo;
       
        return contactBean;
    }
   
    /**
     * 根据号码查询联系人详细信息,分析含有+86的手机号码
     * <功能详细描述>
     * @param number 号码
     * @return ContactBean
     * @see [类、类#方法、类#成员]
     */
    public ContactBean queryDetailByNumberInclude86(String number)
    {
        ContactBean c = queryDetailByNumber(number);
        if (null != c)
        {
            return c;
        }
       
        int l = number.length();
       
        if (11 == l)
        {
            c = queryDetailByNumber("86" + number);
            if (null != c)
            {
                return c;
            }
           
            c = queryDetailByNumber("+86" + number);
            if (null != c)
            {
                return c;
            }
        }
       
        if (13 == l && number.startsWith("86"))
        {
            c = queryDetailByNumber(number.substring(2));
            if (null != c)
            {
                return c;
            }
           
            c = queryDetailByNumber("+" + number);
            if (null != c)
            {
                return c;
            }
        }
       
        if (14 == l && number.startsWith("+86"))
        {
            c = queryDetailByNumber(number.substring(3));
            if (null != c)
            {
                return c;
            }
           
            c = queryDetailByNumber(number.substring(1));
            if (null != c)
            {
                return c;
            }
        }
       
        return null;
    }
   
    /**
     * 联系人列表排序
     * <功能详细描述>
     * @param contactList 联系人列表
     * @return 排序后的联系人列表
     * @see [类、类#方法、类#成员]
     */
    public static List<ContactBean> sortList(List<ContactBean> contactList)
    {
        if (null == contactList)
        {
            return null;
        }
        //SortComparator sortComparator = new SortComparator();
        GeiliSortComparator geiliSortComparator = new GeiliSortComparator();
        Collections.sort(contactList, geiliSortComparator);
        return contactList;
    }
   

 

你可能感兴趣的:(我的数据库1)