From 9782d52be483f9005bddf98d9dac2b2aa444a528 Mon Sep 17 00:00:00 2001 From: zher52 Date: Wed, 13 May 2020 13:24:29 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8DFailed=20to=20find=20co?= =?UTF-8?q?nfigured=20root=20that=20contains=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/android/CameraLauncher.java | 5 ++--- src/android/CordovaUri.java | 7 +++---- src/android/xml/camera_provider_paths.xml | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/android/CameraLauncher.java b/src/android/CameraLauncher.java index 7d120bf..3916b2b 100644 --- a/src/android/CameraLauncher.java +++ b/src/android/CameraLauncher.java @@ -37,7 +37,6 @@ import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; -import android.support.v4.content.FileProvider; import android.util.Base64; import org.apache.cordova.BuildHelper; @@ -290,7 +289,7 @@ public class CameraLauncher extends CordovaPlugin implements MediaScannerConnect // Specify file so that large image is captured and returned File photo = createCaptureFile(encodingType); - this.imageUri = new CordovaUri(FileProvider.getUriForFile(cordova.getActivity(), + this.imageUri = new CordovaUri(cordova.getActivity().getCacheDir() ,FileProvider.getUriForFile(cordova.getActivity(), applicationId + ".camera.provider", photo)); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri.getCorrectUri()); @@ -1365,7 +1364,7 @@ public class CameraLauncher extends CordovaPlugin implements MediaScannerConnect if (state.containsKey(IMAGE_URI_KEY)) { //I have no idea what type of URI is being passed in - this.imageUri = new CordovaUri(Uri.parse(state.getString(IMAGE_URI_KEY))); + this.imageUri = new CordovaUri(cordova.getActivity().getCacheDir(),Uri.parse(state.getString(IMAGE_URI_KEY))); } this.callbackContext = callbackContext; diff --git a/src/android/CordovaUri.java b/src/android/CordovaUri.java index 5c2224d..5a28f9a 100644 --- a/src/android/CordovaUri.java +++ b/src/android/CordovaUri.java @@ -43,13 +43,13 @@ public class CordovaUri { * We always expect a FileProvider string to be passed in for the file that we create * */ - CordovaUri (Uri inputUri) + CordovaUri (File dir,Uri inputUri) { //Determine whether the file is a content or file URI if(inputUri.getScheme().equals("content")) { androidUri = inputUri; - fileName = getFileNameFromUri(androidUri); + fileName = getFileNameFromUri(dir,androidUri); fileUri = Uri.parse("file://" + fileName); } else @@ -93,10 +93,9 @@ public class CordovaUri { * we own the context in this case. */ - private String getFileNameFromUri(Uri uri) { + private String getFileNameFromUri(File external_storage,Uri uri) { String fullUri = uri.toString(); String partial_path = fullUri.split("external_files")[1]; - File external_storage = Environment.getExternalStorageDirectory(); String path = external_storage.getAbsolutePath() + partial_path; return path; diff --git a/src/android/xml/camera_provider_paths.xml b/src/android/xml/camera_provider_paths.xml index 2db87bd..9f33cb2 100644 --- a/src/android/xml/camera_provider_paths.xml +++ b/src/android/xml/camera_provider_paths.xml @@ -17,5 +17,5 @@ --> - + \ No newline at end of file