2013-12-22 4 views
0

Я хочу, чтобы все телефонные номера в меню избранных в контактах, это является частью моего кодаAndroid: Получить телефонные номера в Избранных Контактах

этого кода получить все мои контакты имен и идентификаторы

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

Я рекомендую вам использовать выбор параметров и выборArgs метода ContentProvider.query. Таким образом, вы можете отфильтровать те контактные номера, которые отмечены звездочкой (или избранными).

В параметре выбора просто добавьте строку, содержащую Phone.STARRED + "= 1", чтобы провайдер предоставил вам отмеченные вами контакты.

Смежные вопросы