いつもお世話になっております。
Androidアプリの開発を行っており、webviewでloadしたページでファイルのアップロードを行いたいと思っております。

下記サイト

  1. もう出ないなんて言わせないWebViewでファイルアップロードするダイアログの表示 - Qiita
  2. LollipopのWebViewでinput type fileで画像アップロード - Qiita

などを参考に写真選択のダイアログが開くところまでは実装出来ているのですが、画像を選択してもinputにそのファイルの情報がわたっていないようなのです。

選択されていません

上記の参考サイト1のonActivityResultで、mFilePathCallback.onReceiveValue(results);
している箇所のresultsでは選択したファイルのURIが表示されている事は確認出来ております。
もちろん、PHPだけでファイルが送信されている事は確認済みです。

原因がわからず、どなたか解決策をご存知でしたら、ご教授頂けますと幸いでございます。
何卒、よろしくお願いいたします。

検証端末

  • Android 6
  • Android 8

検証ソース(抜粋)

upload.php

<form action="/upload.php" method="post">
<input type="file" name="image">
<input type="submit">
</form>
<hr>
<?php
print_r($_FILES);
?>

AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

MainActivity.java

final private int INPUT_FILE_REQUEST_CODE = 101;
private ValueCallback<Uri[]> mFilePathCallback;

@Override
protected void onCreate(Bundle savedInstanceState) {
    WebView mWebView = (WebView) findViewById(R.id.main_webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setAppCacheEnabled(true);
    mWebView.getSettings().setUseWideViewPort(true);
    mWebView.getSettings().setLoadWithOverviewMode(false);
    mWebView.getSettings().setDomStorageEnabled(true);
    mWebView.setWebChromeClient(new WebChromeClient() {
        // For Android 5.0+
        @Override
        public boolean onShowFileChooser(WebView webView,
                                         ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
            if (mFilePathCallback != null) {
                mFilePathCallback.onReceiveValue(null);
            }
            mFilePathCallback = filePathCallback;

            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("image/*");
            startActivityForResult(intent, INPUT_FILE_REQUEST_CODE);

            return true;
        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == INPUT_FILE_REQUEST_CODE) {
        if (mFilePathCallback == null) {
            super.onActivityResult(requestCode, resultCode, data);
            return;
        }
        Uri[] results = null;

        // Check that the response is a good one
        if (resultCode == RESULT_OK) {
            String dataString = data.getDataString();
            if (dataString != null) {
                results = new Uri[]{Uri.parse(dataString)};
            }
        }
        Andrid.util.Log.d("tag", results[0]); // ← URIは取得出来ている
        mFilePathCallback.onReceiveValue(results);
        mFilePathCallback = null;
    }
}