Android:在收藏夹联系人中获取电话号码

时间:2013-12-22 09:52:14

标签: android contacts

我想在联系人的收藏夹菜单中获取所有电话号码, 这是我的代码的一部分

此代码获取我的所有联系人姓名和ID

ContentResolver cr = getContentResolver();
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));
    }
}

这就是我得到我的号码

phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +"="+ CheckedArray.get(i), null, null); 
phones.moveToNext();
phoneNumber = phones.getString(phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.NUMBER));
String Message = DbManager.getInstance().userName+" wants to share his OneLinx profile with you";
try {
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, Message, null, null);    
} catch (Exception e) {
    Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();
    e.printStackTrace();
}       
phones.close();

但在我的应用程序的另一部分,我想只收到收藏夹中的联系人,所以有办法做到这一点?我可以在这里改变一些东西,只获取最爱并不是所有联系人吗?

1 个答案:

答案 0 :(得分:0)

我建议您使用参数选择和ContentProvider.query方法的selectionArgs。因此,您可以过滤那些已标记为"已加星标的联系号码。 (或收藏夹)。

在选择参数中,只需添加一个包含Phone.STARRED +" = 1"的字符串。因此,提供商将为您提供已加星标的联系人。