Когда я делаю фотографию с помощью своего веб-браузера Android, он сохраняет ее с 0B и не загружает

#java #android #webview #save-image

Вопрос:

Поэтому, когда я открываю проводник файлов своего телефона, он показывает мое изображение, но оно равно 0B. Он также не загружает изображение. Похоже, что приложение неправильно записывает файл, и я не могу понять, почему оно это делает. Я уже некоторое время борюсь с этим. Если кто-нибудь может сказать мне, что я делаю не так, я был бы признателен. Я использую SDK 29. Это мой Java-код:

 public void openFileChooser(ValueCallbacklt;Urigt; uploadMsg, String acceptType){   // Update message  mUM = uploadMsg;   try{    // Create camera captured image file path and name   ContentResolver resolver = MainActivity.this.getContentResolver();  ContentValues contentValues = new ContentValues();  contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, "IMG_"    String.valueOf(System.currentTimeMillis()));  contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg");  contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_PICTURES);   Uri uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);   // Camera capture image intent  final Intent captureIntent = new Intent(  android.provider.MediaStore.ACTION_IMAGE_CAPTURE);   captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);   Intent i = new Intent(Intent.ACTION_GET_CONTENT);  i.addCategory(Intent.CATEGORY_OPENABLE);  i.setType("image/*");   // Create file chooser intent  Intent chooserIntent = Intent.createChooser(i, "Image Chooser");   // Set camera intent to file chooser  chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS  , new Parcelable[] { captureIntent });   // On select image call onActivityResult method of activity  startActivityForResult(chooserIntent, FILECHOOSER_RESULTCODE);   }  catch(Exception e){  Toast.makeText(getBaseContext(), "Exception:" e,  Toast.LENGTH_LONG).show();  }  }   //For Android 5.0   public boolean onShowFileChooser(  WebView webView, ValueCallbacklt;Uri[]gt; filePathCallback,  WebChromeClient.FileChooserParams fileChooserParams) {  if (mUMA != null) {  mUMA.onReceiveValue(null);  }  mUMA = filePathCallback;  Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  if (takePictureIntent.resolveActivity(MainActivity.this.getPackageManager()) != null) {  File photoFile = null;  try {  photoFile = createImageFile();  takePictureIntent.putExtra("PhotoPath", mCM);  } catch (IOException ex) {  Log.e(TAG, "Image file creation failed", ex);   new AlertDialog.Builder(MainActivity.this)  .setTitle("Closing Activity")  .setMessage(String.format("Failed to create image.rn %s", ex))  .setPositiveButton("OK", null)  .setNegativeButton("No", null)  .show();  }  if (photoFile != null) {  mCM = "file:"   photoFile.getAbsolutePath();  takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));  } else {  takePictureIntent = null;  }  }  Intent contentSelectionIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);  contentSelectionIntent.setType("*/*");  Intent[] intentArray;  if (takePictureIntent != null) {  intentArray = new Intent[]{takePictureIntent};  } else {  intentArray = new Intent[0];  }   Intent chooserIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);  chooserIntent.putExtra(Intent.EXTRA_TITLE, "Image Chooser");  chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);  startActivityForResult(chooserIntent, FCR);  return true;  }  @Override  public void onPermissionRequest(final PermissionRequest request){  request.grant(request.getResources());    }  });