Android 选择仅储存在手机存储器中的所有联系人

Android 选择仅储存在手机存储器中的所有联系人,android,contact,Android,Contact,我只需要从手机存储器中获取联系人,而不需要从sim卡中获取联系人。我使用以下代码,但它从sim卡和手机中获取所有联系人。请帮帮我 这是我的密码 private void getcontacts(){ ContentResolver cr = getContentResolver(); ArrayList<String> contactsBuffer = new ArrayList<String>(); Curs

我只需要从手机存储器中获取联系人,而不需要从sim卡中获取联系人。我使用以下代码,但它从sim卡和手机中获取所有联系人。请帮帮我

这是我的密码

private void getcontacts(){
         ContentResolver cr = getContentResolver();
          ArrayList<String> contactsBuffer = new ArrayList<String>();
            Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
                    null, null, null, null);
            if (cur.getCount() > 0) {
                while (cur.moveToNext()) {
                      String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                      String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                      if (Integer.parseInt(cur.getString(
                            cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                         Cursor pCur = cr.query(
                                   ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                   null,
                                   ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",
                                   new String[]{id}, null);
                         while (pCur.moveToNext()) {
                             String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                             //Toast.makeText(MainActivity.this, "Name: " + name + ", Phone No: " + phoneNo, Toast.LENGTH_SHORT).show();
                             contactsBuffer.add( name +" "+phoneNo);
                         }
                        pCur.close();
                    }
                }
            }


    }
private void getcontacts(){
ContentResolver cr=getContentResolver();
ArrayList contactsBuffer=新建ArrayList();
Cursor cur=cr.query(Contacts contract.Contacts.CONTENT\u URI,
空,空,空,空);
如果(cur.getCount()>0){
while(cur.moveToNext()){
字符串id=cur.getString(cur.getColumnIndex(ContactsContract.Contacts._id));
字符串名称=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_name));
if(Integer.parseInt(cur.getString(
cur.getColumnIndex(Contacts.Contacts.HAS_PHONE_NUMBER))>0){
游标pCur=cr.query(
ContactsContract.CommonDataTypes.Phone.CONTENT\u URI,
无效的
ContactsContract.CommonDataTypes.Phone.CONTACT_ID+“=?”,
新字符串[]{id},null);
while(pCur.moveToNext()){
String phoneNo=pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataTypes.Phone.NUMBER));
//Toast.makeText(MainActivity.this,“Name:+Name+”,电话号码:+phoneNo,Toast.LENGTH_SHORT).show();
contactsBuffer.add(姓名+“”+电话号码);
}
pCur.close();
}
}
}
}

看一看,我可能知道上面的链接和我的代码之间的区别基本上是一样的,但它与我的代码太不一样了。事实上,它应该得到电话联系方式,但无论如何,最糟糕的方式是比较两个联系方式。谢谢。。现在可以用了