Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android phonegap/cordova 3.1.0,无法显示联系人照片_Android_Cordova - Fatal编程技术网

Android phonegap/cordova 3.1.0,无法显示联系人照片

Android phonegap/cordova 3.1.0,无法显示联系人照片,android,cordova,Android,Cordova,我试图显示地址簿中的每个联系人,以及他们的照片 为此,我在模拟器中创建了一个带有随机图片的联系人。我成功地列出了联系人名单。正如预期的那样,第一个联系人包含照片的url: {“id”:“1”,“rawId”:“1”,“displayName”:“Test Dude 1”,“name”:{“middleName”:“Dude”,“familyName”:“1”,“格式化”:“Test Dude 1”,“givenName”:“Test”},“昵称”:null,“电话号码”:null,“电子邮件”:

我试图显示地址簿中的每个联系人,以及他们的照片

为此,我在模拟器中创建了一个带有随机图片的联系人。我成功地列出了联系人名单。正如预期的那样,第一个联系人包含照片的url:

{“id”:“1”,“rawId”:“1”,“displayName”:“Test Dude 1”,“name”:{“middleName”:“Dude”,“familyName”:“1”,“格式化”:“Test Dude 1”,“givenName”:“Test”},“昵称”:null,“电话号码”:null,“电子邮件”:null,“地址”:null,“ims”:null,“组织”:null,“生日”:null,“注意”:null,“照片”:[{“值”:content://com.android.contacts/contacts/1/photo",“类型”:“url”,“id”:“2”,“pref”:false}],“类别”:null,“url”:null}

所以,现在我正在尝试显示图片。这就是我遇到的问题。为了尽量减少我遇到的错误,我在第一个联系人的图片中添加了一个带有URL的img标记:

<img id="myimg">
<script type="text/javascript">
    setTimeout(function() {
        console.log('doing my thing');
        var theurl = 'content://com.android.contacts/contacts/1/photo';
        var element = document.getElementById('myimg');
        element.src = theurl;
        console.log('did my thing');
    }, 3000);
</script>
我使用的是cordova 3.1.0和模拟Android设备,平台为4.2.2,API级别为17。我相信我已经设置了相关的权限(
READ\u CONTACTS
WRITE\u CONTACTS
,添加了
GET\u ACCOUNTS
WRITE\u EXTERNAL\u STORAGE
,以防有帮助)


我做错了什么?如何进一步诊断问题?

在能够解决问题后,我将回答自己的问题

显然,您不能直接访问照片的URL。但您可以将其传输到临时存储器并链接到该存储器。此问题的答案中描述了执行此操作的方法:

I/Web Console( 3304): doing my thing at file:///android_asset/www/index.html:42
E/webcoreglue( 3304): *** Uncaught exception returned from Java call!
W/System.err( 3304): java.io.IOException: read failed: EINVAL (Invalid argument)
W/System.err( 3304):    at libcore.io.IoBridge.read(IoBridge.java:442)
W/System.err( 3304):    at java.io.FileInputStream.read(FileInputStream.java:179)
W/System.err( 3304):    at java.io.InputStream.read(InputStream.java:163)
W/System.err( 3304):    at dalvik.system.NativeStart.run(Native Method)
W/System.err( 3304): Caused by: libcore.io.ErrnoException: read failed: EINVAL (Invalid argument)
W/System.err( 3304):    at libcore.io.Posix.readBytes(Native Method)
W/System.err( 3304):    at libcore.io.Posix.read(Posix.java:123)
W/System.err( 3304):    at libcore.io.BlockGuardOs.read(BlockGuardOs.java:149)
W/System.err( 3304):    at libcore.io.IoBridge.read(IoBridge.java:432)
W/System.err( 3304):    ... 3 more
I/Web Console( 3304): did my thing at file:///android_asset/www/index.html:54