如何从Android联系人列表中获取skype信息

san*_*une 7 android skype

新手使用联系人合同内容提供商.

我正在尝试从我的应用程序内部进行Skype调用,而我无法弄清楚如何从android联系人中获取skype信息.我正在通过ContentResolver运行查询以获取联系人的所有数据,但我不知道如何在数据中找到Skype脚本名称.

bra*_*all 3

这对我有用:

    public String getSkypeID(Context mContext, String contactID) {
    Log.i("getContactNumber");

    String returnID = "noMatch";

    ContentResolver cr = mContext.getContentResolver();
    Cursor skype = cr.query(ContactsContract.Data.CONTENT_URI, null, ContactsContract.Data.CONTACT_ID
            + " = " + contactID, null, null);

    while (skype.moveToNext()) {

        int type = skype
                .getInt(skype
                        .getColumnIndex(ContactsContract.CommonDataKinds.Im.PROTOCOL));
        String imName = skype.getString(skype
                .getColumnIndex(ContactsContract.CommonDataKinds.Im.DATA));

        switch (type) {
        case ContactsContract.CommonDataKinds.Im.PROTOCOL_SKYPE:
            Log.d("contactID: " + contactID + " type: " + type
                    + " imName: " + imName);

            returnID = imName;

            break;

        default:
            Log.v("Other numbers: " + imName);
            break;
        }

    }

    return returnID;
}
Run Code Online (Sandbox Code Playgroud)

传入contactID以供使用:

    String skypeID = getSkypeID(mContext, contactID);

    if(!skypeID.matches("noMatch") {
    //skypeID found

    // Skype intent here

    }
Run Code Online (Sandbox Code Playgroud)

希望有帮助。