From 2362f73c6144dc995b8eadc92b38f62f09de6176 Mon Sep 17 00:00:00 2001 From: Konoha-orz <517136675@qq.com> Date: Sat, 15 Aug 2020 15:06:04 +0800 Subject: [PATCH] Providing a custom {@code FileProvider} prevents manifest {@code } name collisions. Define for READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE It will reslove the problem about upload Picture on webpage --- android/src/main/AndroidManifest.xml | 11 +++++++---- .../FlutterWebviewFileProvider.java | 13 +++++++++++++ .../com/flutter_webview_plugin/WebviewManager.java | 2 +- 3 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 android/src/main/java/com/flutter_webview_plugin/FlutterWebviewFileProvider.java diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 20ea4b76..e841d253 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,11 +1,14 @@ + xmlns:tools="http://schemas.android.com/tools" + package="com.flutter_webview_plugin"> + + + diff --git a/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewFileProvider.java b/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewFileProvider.java new file mode 100644 index 00000000..0758f6c3 --- /dev/null +++ b/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewFileProvider.java @@ -0,0 +1,13 @@ +package com.flutter_webview_plugin; + +import androidx.core.content.FileProvider; + +/** + * Created by Konoha on 15/08/2020 + * + * Providing a custom {@code FileProvider} prevents manifest {@code } name collisions. + * + *

See https://developer.android.com/guide/topics/manifest/provider-element.html for details. + */ +public class FlutterWebviewFileProvider extends FileProvider { +} diff --git a/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java b/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java index e19b2a08..0b4c20cc 100644 --- a/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java +++ b/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java @@ -287,7 +287,7 @@ private Uri getOutputFilename(String intentType) { } catch (IOException e) { e.printStackTrace(); } - return FileProvider.getUriForFile(context, packageName + ".fileprovider", capturedFile); + return FileProvider.getUriForFile(context, packageName + ".flutter_webview_fileprovider", capturedFile); } private File createCapturedFile(String prefix, String suffix) throws IOException {