【问题标题】:Get Skype name from Contacts list从联系人列表中获取 Skype 名称
【发布时间】:2015-09-17 12:33:05
【问题描述】:

我正在使用此代码在我的 Android 设备中获取 Skype 联系人:

private void getContactList() {
    Cursor c = getContentResolver().query(
            RawContacts.CONTENT_URI,
            new String[] { RawContacts.CONTACT_ID,
                    RawContacts.DISPLAY_NAME_PRIMARY,
                    RawContacts.DISPLAY_NAME_ALTERNATIVE },
            RawContacts.ACCOUNT_TYPE + "= ?",
            new String[] { "com.skype.contacts.sync" }, null);

    int contactNameColumn = c
            .getColumnIndex(RawContacts.DISPLAY_NAME_ALTERNATIVE);
    int count = c.getCount();
    skypeName = new String[count];
    for (int i = 0; i < count; i++) {
        c.moveToPosition(i);
        skypeName[i] = c.getString(contactNameColumn);

        Log.i("KEY", skypeName[i]);
    }
}

此代码工作正常,但它返回 Skype 显示名称。但是是否有可能获取 Skype 名称 而不是显示名称,因此我可以使用该 Skype 名称进行通话或视频通话? 谢谢, 问候。

【问题讨论】:

  • @ChristopherSouvey 你能帮帮我吗?

标签: android skype


【解决方案1】:

你需要查询Data表而不是RawContactsData表的数据是由mimetypes组织的,你只需要找到包含你要查找的信息的mimetype,在skype 的情况下是:"vnd.android.cursor.item/com.skype.android.skypecall.action"

private void getContactList() {
    Cursor c = getContentResolver().query(
            Data.CONTENT_URI,
            new String[] { Data.CONTACT_ID, Data.DATA1 },
            Data.MIMETYPE + "= ?", 
            new String[] { "vnd.android.cursor.item/com.skype.android.skypecall.action" },
            null);

    while (c != null && c.moveToNext()) {
        String contact = c.getLong(0);
        String skype = c.getString(1);

        Log.i("contact " + contact + " has skype username: " + skype);
    }
}
  • 我在这里输入了代码,所以没有检查,我可能有错别字
  • 确保始终通过c.close() 关闭游标

【讨论】:

  • 你好marmor,我想获取skype用户照片,可以用同样的方式吗?。谢谢@marmor
  • Skype Android SDK 是否支持允许修改消息的 SDP 部分,以便将媒体 RTP 流路由到与运行应用程序不同的 IP 地址和端口?
【解决方案2】:

我对 Android-Skype API 不是很熟悉,但它看起来像这行

.getColumnIndex(RawContacts.DISPLAY_NAME_ALTERNATIVE);

是拉显示名称而不是用户名的原因。您可以检查 API 并查看是否有另一个 RawContacts。方法可以改为获取用户名。

更多信息可在此处获得:

http://www.programmableweb.com/api/skype

http://www.skype.com/en/developer/

【讨论】:

  • 感谢您的回复,但我尝试了其他方法,没有与用户名相关的内容...关于 Skype API,我搜索我发现没有公共 API。并且根据许多链接:stackoverflow.com/questions/6044512/android-api-for-skype 他们没有适用于 android 的 API。
  • 我想我误解了你原来的帖子。您是通过 android 设备上的终端模拟器运行此代码吗?
  • 我在安卓设备上运行这个。
猜你喜欢
  • 1970-01-01
  • 2012-10-23
  • 2017-06-22
  • 2016-10-08
  • 2020-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
相关资源
最近更新 更多