@Override public @Nullable Bundle call(final @NonNull String method, final @Nullable String arg, final @Nullable Bundle extras) {
		if (extras != null) {
			final Uri uri = extras.getParcelable(EXTRA_URI);
			if (uri != null) extras.putParcelable(EXTRA_URI, toTargetUri(uri));
			final Uri parent_uri = extras.getParcelable(EXTRA_PARENT_URI);
			if (parent_uri != null) extras.putParcelable(EXTRA_PARENT_URI, toTargetUri(parent_uri));
			final Uri target_uri = extras.getParcelable(EXTRA_TARGET_URI);
			if (target_uri != null) extras.putParcelable(EXTRA_TARGET_URI, toTargetUri(target_uri));
		}
		final Bundle result = mDelegate.call(method, arg, extras);
		if (result != null) {
			final Uri uri = result.getParcelable(EXTRA_URI);
			if (uri != null) result.putParcelable(EXTRA_URI, toProxyUri(uri));
		}
		return result;
	}
Documents provider for accessing files in / outside Island.

Created by Oasis on 2017/8/29.
fileprovider/src/main/java/com/oasisfeng/island/fileprovider/ExternalStorageProviderProxy.java