Добавление действия установки намерения в новый API результата действия ActivityResultLauncher при выборе изображения из галереи

#android-intent #android-camera #androidx #onactivityresult #activity-result-api

Вопрос:

Я использую новый API результатов действий для запуска и выбора изображения из галереи проблема заключается в том, как я могу изменить намерение в новом API результатов действий, чтобы он работал как старый startActivityForResult

Ниже приведен мой старый способ выбора чего-либо из галереи

 
        Intent pickImageIntent = new Intent();
        pickImageIntent.setType("image/*");
        pickImageIntent.setAction(Intent.ACTION_PICK);
        startActivityForResult(pickImageIntent, PICK_IMAGE_FROM_GALLERY_REQUEST_CODE);

 

Тогда ниже приведен мой старый способ получения результата с помощью onActivityResult

 
@Override
    public void onActivityResult(int requestCode, int resultCode,
                                 @Nullable @org.jetbrains.annotations.Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == PICK_IMAGE_FROM_GALLERY_REQUEST_CODE) {
            if (resultCode == RESULT_OK amp;amp; data != null) {

                Uri selectedImageUri = data.getData();

                imvImage.setImageURI(selectedImageUri);

            } else {
                // Show Error Exception Dialog
                // We encountered an error while picking your image from gallery
                // Try Again, Cancel
            }
        }
}

 

Ниже приведен мой новый способ запуска камеры с помощью нового API результатов активности

 
getImageFromGallery.launch("image/*");

 

И получение результатов ниже с помощью ActivityResultLauncher

 
ActivityResultLauncher<String> getImageFromGallery = registerForActivityResult(new ActivityResultContracts.GetContent(),
            new ActivityResultCallback<Uri>() {
                @Override
                public void onActivityResult(Uri uri) {

                    imvImage.setImageURI(uri);
                }
            });

 

Мой вопрос в том, как я могу проанализировать что-то что-то в методе запуска или установить действие в пример намерения

 pickImageIntent.setAction(Intent.ACTION_PICK);

 

к этому

  getImageFromGallery.launch("image/*");