我想在联系人的收藏夹菜单中获取所有电话号码, 这是我的代码的一部分
此代码获取我的所有联系人姓名和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();
但在我的应用程序的另一部分,我想只收到收藏夹中的联系人,所以有办法做到这一点?我可以在这里改变一些东西,只获取最爱并不是所有联系人吗?
答案 0 :(得分:0)
我建议您使用参数选择和ContentProvider.query方法的selectionArgs。因此,您可以过滤那些已标记为"已加星标的联系号码。 (或收藏夹)。
在选择参数中,只需添加一个包含Phone.STARRED +" = 1"的字符串。因此,提供商将为您提供已加星标的联系人。