必赢亚洲手机app下载


charles工具抓包教程366net必赢亚洲手机版

你如此穷用屁支付宝

android5.0挂钩人 sort_key改成phonebook_label

品类中用到了关联人根据字母排序,在android4.0有线电话上是能够的,不过在android4.4以上的无绳电话机排序是乱的,一般字母排序都是依照sort_key那些拼音实行排序,而android5.0这一个字段没有保存拼音,直接是汉字.

于是乎我把4.4的无绳电话机上调换人db文件查看了一晃,发现phonebook_label保存的是关系人姓名拼音首字母

如何选拔adb命令把关系人db文件copy到电脑。

1.手机跟电脑usb数据线进行连接,并且电脑端装了手机usb驱动(简单表达就是在支付调试环境下)

2.关系人数据库copy到sdcard
  cat /data/data/com.android.providers.contacts/databases/contacts2.db
> /sdcard/contacts2.db
366net必赢亚洲手机版,3.先exit脱离adb shell界面  把sdcard的db文件复制到d盘
  adb   pull  /sdcard/contacts2.db  D:\contacts2.db

以下是自家写的一段查询数据库说有牵连人的代码,根据操作系统差别查询分化的sort_key,大家单独调试时回忆扩大访问联系人权限

 /**
     * 查找所有联系人
     */
    public static List<SWWContact> findAllContacts(ContentResolver cr) {
        List<SWWContact> list = new ArrayList<SWWContact>();
        String[] projection=new String[]{
                ContactsContract.Contacts.DISPLAY_NAME,
                ContactsContract.Contacts.SORT_KEY_PRIMARY,
                ContactsContract.Contacts._ID,
                ContactsContract.Contacts.PHOTO_ID,
                ContactsContract.Contacts.LOOKUP_KEY};

        //如果android操作系统版本4.4或4.4以上就要用phonebook_label而不是sort_key字段
        if(android.os.Build.VERSION.SDK_INT>=19){
            projection[1]="phonebook_label";
        }

        Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI,
                        projection, null, null,
                        "sort_key COLLATE LOCALIZED asc");
        if (null!=cursor&&cursor.moveToFirst()){
            do {
                SWWContact cb = new SWWContact();
                cb.setDisplayName(cursor.getString(0));

                String sortKey=cursor.getString(1);
                if(sortKey.trim().substring(0,1).matches("[a-z]")){
                    sortKey=sortKey.toUpperCase();
                }
                cb.setSortKey(sortKey);

                cb.setContactId(cursor.getInt(2));
                cb.setPhotoId(cursor.getLong(3));
                cb.setLookUpKey(cursor.getString(4));
                cb.setPhoneNum(getContactNumber(cursor.getInt(2),cr));
                list.add(cb);
            } while (cursor.moveToNext());
            cursor.close();
        }
        return list;
    }


    /**
     * 根据联系人ID得到联系人号码
     */
    private static String getContactNumber(int contactId,ContentResolver cr){
        Cursor phones = cr.query(  
                ContactsContract.CommonDataKinds.Phone.CONTENT_URI,  
                null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID  
                        + " = " + contactId, null, null);
        String phoneNumber="";
        if(phones.moveToNext()){  
            phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));  
        }
        phones.close();
        return phoneNumber;
    }

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图