使用联系人合同内容提供程序的新手。
我正在尝试从我的应用程序中进行 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, 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
}
希望有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)