如何保存从com.android.contacts,Android中提取的图像?

时间:2014-05-22 10:28:46

标签: android

我从联系人列表中提取了照片网址,并获得了以下路径:

content://com.android.contacts/contacts/1237/photo

在上传到javascript之前(我使用Cordova)我想获取图像并将其作为png文件保存在本地存储中。

这是我到目前为止所做的:

private void savefile(String name, String path){        

   File direct = new File(Environment.getExternalStorageDirectory() + "/myApp/images/");

   File file = new File(Environment.getExternalStorageDirectory() + "/myApp/images/"+name+".png");


              if(!direct.exists()){
                  direct.mkdir();
              }


              if (!file.exists()) {
                      try {
                          file.createNewFile();
                          FileChannel src = new FileInputStream(path).getChannel(); // <- here I get Exception
                          FileChannel dst = new FileOutputStream(file).getChannel();
                          dst.transferFrom(src, 0, src.size());
                          src.close();
                          dst.close();

                      } catch (IOException e) {
                          e.printStackTrace();
                      }
              }
  }

但是我找不到文件异常

有什么想法吗?

谢谢,

1 个答案:

答案 0 :(得分:2)

window.resolveLocalFileSystemURI(imageURI, gotFileEntryMessage, fsFailMessage);

function gotFileEntryMessage(fileEntry) {

     var Path = fileEntry.fullPath;
    alert(Path);
  }

  function fsFailMessage(error) {
    console.log("failed with error code: " + error.code);
  }
  

这件事将为您提供存储在手机内存中的文件路径,并使用Cordova插件将其传递给您的Java方法。