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