新手使用联系人合同内容提供商.
我正在尝试从我的应用程序内部进行Skype调用,而我无法弄清楚如何从android联系人中获取skype信息.我正在通过ContentResolver运行查询以获取联系人的所有数据,但我不知道如何在数据中找到Skype脚本名称.
解决方法
这对我有用:
- 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);
- 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;
- }
传入contactID以供使用:
- String skypeID = getSkypeID(mContext,contactID);
- if(!skypeID.matches("noMatch") {
- //skypeID found
- // Skype intent here
- }
希望有所帮助.