【问题标题】:Android: Get Phone Numbers in Favorites ContactsAndroid:在收藏夹联系人中获取电话号码
【发布时间】:2013-12-22 09:52:14
【问题描述】:

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

此代码获取我所有的联系人姓名和 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();

但在我的应用程序的另一部分,我只想获取收藏夹中的联系人,那么有没有办法做到这一点?我可以在此处更改某些内容以仅获取收藏夹而不是所有联系人吗?

【问题讨论】:

    标签: android contacts


    【解决方案1】:

    我推荐你使用 ContentProvider.query 方法的参数 selection 和 selectionArgs 。因此,您可以过滤那些“加星标”(或收藏)的联系号码。

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

    【讨论】:

    • 您的解决方案看起来很有希望。您能否展示一个示例代码 sn-p 来说明如何执行此操作?
    猜你喜欢
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 2011-07-30
    • 2014-03-30
    • 2012-06-28
    • 2015-04-01
    相关资源
    最近更新 更多