2013-10-18 77 views
1

我試圖在地址簿中顯示每個聯繫人以及他們的照片。phonegap/cordova 3.1.0,無法顯示聯繫人照片

爲此,我在模擬器中用隨機圖片創建了一個聯繫人。我設法列出了聯繫人沒有麻煩。第一次接觸含有,如預期,一個URL,照片:

{"id":"1","rawId":"1","displayName":"Test Dude 1","name":{"middleName":"Dude","familyName":"1","formatted":"Test Dude 1","givenName":"Test"},"nickname":null,"phoneNumbers":null,"emails":null,"addresses":null,"ims":null,"organizations":null,"birthday":null,"note":null,"photos":[{"value":"content://com.android.contacts/contacts/1/photo","type":"url","id":"2","pref":false}],"categories":null,"urls":null}

所以,現在我想顯示的圖片。這是我遇到麻煩的地方。在嘗試創建我運行到錯誤的小例子,我添加了URL的img標籤的第一次接觸PIC:

<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> 

我沒有設法得到的圖片顯示。這是日誌說:

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 

我使用的科爾多瓦3.1.0和仿真Android設備與平臺4.2.2和API級別17.我相信我有設置相關權限(READ_CONTACTSWRITE_CONTACTS,加上GET_ACCOUNTS,WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE萬一他們會幫助)。

我在做什麼錯?我怎樣才能進一步診斷問題?

回答

0

在能夠解決問題後會回答我自己的問題。

顯然你不能直接訪問照片的URL。但是,您可以將其傳輸到臨時存儲並鏈接到該存儲。在這個問題的答案中描述了這樣做的方法:

PhoneGap resolveLocalFileSystemURI