Не найдено действий для обработки намерения { act=android.intent.action .ВЫБЕРИТЕ dat=content: //media/external/video/media }

#android #kotlin #exception #video-capture #android-gallery

#Android #котлин #исключение #захват видео #android-галерея

Вопрос:

Прошло 5 дней борьбы с этой проблемой, и до сих пор не найдено никакого рабочего решения.Наконец-то подумал о том, чтобы получить помощь от гениальных умов здесь. Проблема: я пытаюсь выбрать видео из галереи (но на некоторых планшетных устройствах версии 28), получая вышеупомянутое исключение. Я хотел бы заявить, что некоторые из них являются планшетами Amazon, поэтому я не уверен, требуются ли какие-либо конкретные проверки для этого. Ниже приведен мой код:

      private fun selectVideo() {
            val items = arrayOf<CharSequence>("Camera", "Gallery", "Cancel")
            val builder = AlertDialog.Builder(this)
            builder.setTitle("Add Attachment")
            builder.setItems(items) { dialog, item ->
    
                if (items[item] == "Camera") {
                    val videoCaptureIntent = Intent(MediaStore.ACTION_VIDEO_CAPTURE)
                    videoCaptureIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 20);
    
                    if (videoCaptureIntent.resolveActivity(packageManager) != null) {
                        startActivityForResult(videoCaptureIntent, REQUEST_VIDEO_CAPTURE)
                    }
                } else if (items[item] == "Gallery") {
                    
                        val galleryIntent = Intent(
                            Intent.ACTION_PICK,
                            android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI
                        )
                        startActivityForResult(galleryIntent, REQUEST_VIDEO_PICK)
    
                    }
                }
            }
            builder.show()
    
        }
  

Ваша любезная поддержка будет высоко оценена.

Ответ №1:

Попробуйте следующий код

 var intent = new Intent ();
intent.SetType ("video/*");
intent.SetAction (Intent.ActionGetContent);
intent.PutExtra (MediaStore.ExtraVideoQuality, 0);
intent.PutExtra (MediaStore.ExtraDurationLimit, Globals.VideoMaxDuration);
this.StartActivityForResult (Intent.CreateChooser (intent, "Select video"), 200);