gpt4 book ai didi

java - Android - 获取联系人的 Facebook 图片

转载 作者:行者123 更新时间:2023-11-29 21:19:44 24 4
gpt4 key购买 nike

使用 Android 平台真的很有趣,尤其是在解决问题时。事实上,互联网上可能有关于 Android 开发的所有知识。

好的,我已经搜索了大约一个星期,但没有找到任何与工作接近的东西。让我们深入研究。

我们正在构建一个 Android 应用程序,它需要对设备上的现有联系人进行读/写访问。使用此方法读取联系人的照片变得非常容易:

// Returns a stream reading a contact thumbnail
public InputStream getContactThumbnail(int id) {
// Stream reading contact image
InputStream stream = ContactsContract.Contacts.openContactPhotoInputStream(
context.getContentResolver(),
ContentUris.withAppendedId(
ContactsContract.Contacts.CONTENT_URI, id
)
);

// If image is null, try to read Facebook image
if (stream == null) {
stream = new ByteArrayInputStream(getFacebookPhoto(id));
}

return stream;
}

现在,之前的方法接收一个 id 作为参数并返回一个 Stream,从而可以读取联系人的缩略图。 它需要是一个流,因为手机就像一个网络服务器并且有多个线程在运行。如果在同一短时间内多次请求缩略图,则肯定会抛出 OutOfMemoryException

我需要正确实现 getFacebookPhoto(int) 方法,以便它返回任何读取联系人 Facebook 个人资料图片的流,该联系人的联系人已链接到他或她各自的 Facebook 个人资料。我尝试过很多次但都失败了。

假设 #1

如果联系人与 Facebook 个人资料相关联,则必须在某处保存 Facebook ID。如果可以访问此信息,则可以使用图形轻松获取 Facebook 个人资料图片。问题是这样做需要互联网连接。

假设 #2

Facebook 缩略图保存在 SD 卡上的某个位置。也许联系人和那些可以通过 SQLite 请求找到的文件之间存在链接?

假设#3

叹气,我看起来很绝望。好的,如果我没理解错的话,电话联系人和 Facebook 联系人在数据库中不是一回事。如果您从以下 URI 查询所有联系人:*ContactsContract.Contacts.CONTENT_URI*您只会获得您创建的联系人,而不会获得与 Facebook 链接相关的任何信息。有没有办法找到所有链接的联系人并获取他们各自的照片?

结论

是的,就是这样。综上所述,我需要阅读所有联系人信息。对于每个联系人,我必须找到它的照片。如果用户没有为链接到 Facebook 个人资料的联系人设置图片,则也必须读取链接的个人资料图片。

到目前为止,StackOverflow 社区提供了很大的帮助,无数次挽救了我的生命和工作。有可能,我在其他应用程序中看到过。

感谢您抽出时间,我们真的很感激。

编辑

我们不要放弃!我会尽快启动 100pts 赏金

最佳答案

您的假设在一定程度上是正确的。在联系人应用程序中,这些事情按以下方式处理 -

  1. 设备的联系人及其 Facebook 帐户由联系人的 _ID 和 Facebook 的 id 映射,这是一对一的映射。所以首先你必须从这个映射中找出 Facebook idconconsed 接触。但是此信息存储在哪个表中以及该表是否已提供给您,该表的 URL 完全取决于供应商。

  2. 根据 Facebook Id,我们可以从 Facebook 的服务器或媒体数据库中获取相应的个人资料图片,如果它也被缓存的话。

但这并非所有 OEM 都支持。并且实现因 OEM 与 OEM 的不同而不同,因为 Google 不强制执行任何通用标准实现。因此,无法保证单一实现适用于来自不同 OEM 的所有设备。

关于java - Android - 获取联系人的 Facebook 图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20884214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com