この問題は、base64のタイプを保存できないという問題です。
あなたには、プロジェクトフォルダ内にある場所ContactAccessorSdk5.javaでbase64でのいかなる種類、「プラットフォーム/アンドロイド/ビルド/ SRC /組織/ apacheの/コルドバ/連絡先/ ContactAccessorSdk5.java」
がないことが判明することができます
画像データフォーマットのbase64は「data:」で始まります。したがって、 'ContactAccessorSdk5.java'ファイルのgetPathFromUri(String path)を変更して、画像データbase64を保存することができます。
あなたは 'https://groups.google.com/forum/#!msg/phonegap/jTMu9Azjaa8/ywQMMEcoS1YJ'
または以下の私のGitHubで参照することができます。
https://github.com/CordovaExam/Contacts
あなたがそこに着く場合は、より詳細な情報があるそれを得ることができます。
private InputStream getPathFromUri(String path) throws IOException {
if (path.startsWith("data:")) { // data:image/png;base64,[ENCODED_IMAGE]
String dataInfos = path.substring(0, path.indexOf(',')); // data:image/png;base64
dataInfos = dataInfos.substring(dataInfos.indexOf(':') + 1); // image/png;base64
String baseEncoding = dataInfos.substring(dataInfos.indexOf(';') + 1); // base64
if("base64".equalsIgnoreCase(baseEncoding)) {
String img = path.substring(path.indexOf(',') + 1); // [ENCODED_IMAGE]
byte[] encodedData = img.getBytes();
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(encodedData, 0, encodedData.length);
Base64InputStream base64InputStream = new Base64InputStream(byteArrayInputStream, Base64.DEFAULT);
return base64InputStream;
} else {
Log.w(LOG_TAG, "Could not decode image. The found base encoding is " + baseEncoding);
}
}
if (path.startsWith("content:")) {
Uri uri = Uri.parse(path);
return mApp.getActivity().getContentResolver().openInputStream(uri);
}
if (path.startsWith("http:") || path.startsWith("https:") || path.startsWith("file:")) {
URL url = new URL(path);
return url.openStream();
}
else {
return new FileInputStream(path);
}
}