微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Android上获取关系联系人字段

我正在与 Androids联系人合作并尝试获取特定的数据.我已经可以收到电子邮件,电话号码,他们的名字等.但是我很难获得关系领域.

http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Relation.html

所以我的目标是:给定一个特定的用户ID(来自Android上的联系人数据库),找出他们的关系字段.

解决方法

这应该工作.我们的想法是在Data表中连接搜索,但使用CommonDataKinds中的东西.这在where子句中完成… Data.MIMETYPE == CommonDataKinds.Relation.CONTENT_ITEM_TYPE.这将为您提供所有关系内容的行.

import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract.CommonDataKinds.Relation;
import android.provider.ContactsContract.Data;
import android.util.Log;
...
public void logCatTheRelation(long contactId){
    Uri uri = Data.CONTENT_URI;
    String where = String.format(
            "%s = ? AND %s = ?",Data.MIMETYPE,Relation.CONTACT_ID);

    String[] whereParams = new String[] {
               Relation.CONTENT_ITEM_TYPE,Long.toString(contactId),};

    String[] selectColumns = new String[]{
            Relation.NAME,// add additional columns here
    };


    Cursor relationCursor = this.getContentResolver().query(
            uri,selectColumns,where,whereParams,null);
    try{
        if (relationCursor.movetoFirst()) {
            Log.d("gizm0",relationCursor.getString(
                               relationCursor.getColumnIndex(Relation.NAME)));
        }
        Log.d("gizm0","sadly no relation ... ");
    }finally{
        relationCursor.close();
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐