File Chooser не работает в Samsung Tab 3 Android 4.4

У меня есть веб-просмотр с выбором файла, который работает в Samsung Galaxy Tab 2(Android 4.1.1), Lenovo, Nexus Tablets. Но проблема заключается не в том, что он не ворует в Samsung galaxy Tab 3. Что такое Android 4.4 tablet. Я добавил код setWebChromeClient здесь. Можете ли вы, пожалуйста, кто-нибудь мне помочь.

// implement WebChromeClient inner class
        // we will define openFileChooser for select file from camera
        webView.setWebChromeClient(new WebChromeClient() {

            // openFileChooser for Android 3.0+
            public void openFileChooser(ValueCallback<Uri> uploadMsg,
                    String acceptType) {
                /** updated, out of the IF **/
                mUploadMessage = uploadMsg;
                /** updated, out of the IF **/
                Log.e("Reac", "**Here");
                try {
                    File imageStorageDir = new File(base_directory,
                            "profile_pictures");
                    if (!imageStorageDir.exists()) {
                        imageStorageDir.mkdirs();
                    }
                    src_file = new File(imageStorageDir + File.separator
                            + "IMG_" + child_id + ".jpg");
                    mCapturedImageURI = Uri.fromFile(src_file); // save to the
                                                                // private
                                                                // variable

                    final Intent captureIntent = new Intent(
                            android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                    captureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                            mCapturedImageURI);

                    startActivityForResult(captureIntent,
                            FILECHOOSER_RESULTCODE);
                } catch (Exception e) {
                    Toast.makeText(getBaseContext(), "Camera Exception:" + e,
                            Toast.LENGTH_LONG).show();
                }
            }



            // openFileChooser for Android < 3.0
            public void openFileChooser(ValueCallback<Uri> uploadMsg) {
                openFileChooser(uploadMsg, "");
            }

            // openFileChooser for other Android versions
            public void openFileChooser(ValueCallback<Uri> uploadMsg,
                    String acceptType, String capture) {
                openFileChooser(uploadMsg, acceptType);
            }

            /** Added code to clarify chooser. **/

            // The webPage has 2 filechoosers and will send a console message
            // informing what action to perform, taking a photo or updating the
            // file
            public boolean onConsoleMessage(ConsoleMessage cm) {
                onConsoleMessage(cm.message(), cm.lineNumber(), cm.sourceId());
                return true;
            }

            public void onConsoleMessage(String message, int lineNumber,
                    String sourceID) {
                // Log.d("androidruntime", "Per cÔøΩnsola: " + message);
            }
            /** Added code to clarify chooser. **/

        });

Я добавил только фрагмент кода. Пожалуйста, спросите меня, требуются ли какие-либо детали.

Ответ 1

Кажется, в Android 4.4 есть известная ошибка, которая делает <input type="file"> не работать внутри WebView.

К сожалению, openFileChooser не является общедоступным API, и для этого нет публичной поддержки. В Android Lollipop для этой цели был представлен API onShowFileChooser.

Мое предложение - обход проблемы с помощью JavaScript собственного интерфейса WebView и определения пользовательского API OpenFileChooser, обрабатываемого основной частью вашего приложения.