从数据库PhoneGap/Android恢复联系人

Restore Contact from Database PhoneGap/Android

本文关键字:恢复 联系人 Android 数据库 PhoneGap      更新时间:2023-09-26

我正在为Android开发一个小示例Cordova/PhoneGap APP。目标:获取联系人,将其保存到外部MySQL数据库 - 从数据库还原。

$scope.pickContact = function() {
        ContactsService.pickContact().then(
            function(contact) {
                $scope.data = contact.clone();
                // post to db ... code removed
            },
            function(failure) {
                console.log(failure);
            }
        );
    }

它运行良好,但有一个例外:我不知道从数据库恢复联系人照片。如果我保存联系人,它将与裁剪的个人资料图片的 URL 一起保存:

"content://com.android.contacts/contacts/18/photo"

从数据库获取时也会返回此内容,但是当删除联系人时,照片会被删除。我可以从科尔多瓦访问照片并存储/重新创建它吗?

好的... 似乎是科尔多瓦联系人插件中的一个错误。关于某些文档,您可以像这样传递 base64 字符串:

theContact.photos[0] = new ContactField('base64', base64, true)

但是联系人插件中的功能,解决此问题不支持这种格式。

platforms/android/src/org/apache/cordova/contacts/ContactAccessorSdk5.java

/**
   * Get an input stream based on file path or uri content://, http://, file://
   *
   * @param path
   * @return an input stream
 * @throws IOException
   */
private InputStream getPathFromUri(String path) 

对于一个作品一轮:https://groups.google.com/forum/#!topic/phonegap/jTMu9Azjaa8