我使用phonegap(版本2.5)創建了一個應用來編輯Android Phone聯繫人(Android 4)。一切還好,但與聯繫人頭像的問題。 (頭像是從手機庫中加載,將頭像作爲URI加載)Phonetop android contacts with avatar resize
如果選擇大頭像(大於1 MB),則無法更新聯繫人。所以我嘗試將所有選定的頭像自動重新調整爲400x400像素。作爲logcat的,我可以看到它寫/storage/sdcard0/Android/data/{package_name}/cache/resize.jpg但錯誤發生時試圖保存
E/ContactsAccessor(28252): /storage/sdcard0/Android/data/{package_name}/cache/resize.jpg?1374660687484: open failed: ENOENT (No such file or directory)
E/ContactsAccessor(10624): java.io.FileNotFoundException: /storage/sdcard0/Android/data/com.lunextelecom.m/cache/resize.jpg?1374718026949: open failed: ENOENT (No such file or directory)
E/ContactsAccessor(10624): at libcore.io.IoBridge.open(IoBridge.java:416)
E/ContactsAccessor(10624): at java.io.FileInputStream.<init>(FileInputStream.java:78)
E/ContactsAccessor(10624): at libcore.net.url.FileURLConnection.connect(FileURLConnection.java:82)
...
我檢查使用文件瀏覽器,那裏的圖像存在。不知道爲什麼它可以讀取它。
我還檢查並具有READ_EXTERNAL_STORAGE權限設定
請幫我resoleve或任何其他解決方案更新電話聯繫人如果用戶選擇大頭像。非常感謝。
這是我獲取圖像的代碼
var options = {
quality: 75,
destinationType: Camera.DestinationType.FILE_URI,
sourceType: 0, // 0:Photo Library, 1=Camera, 2=Saved Photo Album
encodingType: 0, // 0=JPG 1=PNG
targetWidth: 400,
targetHeight: 400
};
navigator.camera.getPicture(function(imageData) {
image_ctl.setSrc(imageData);
console.log('AVARTA IMG GET'); }, function() {
app.showAlert('Error taking picture', 'Error'); }, options);