Android kotlin_ намерение камеры падает - PullRequest
0 голосов
/ 07 марта 2019

Возможно, этот вопрос является избыточным, но предложенные здесь решения не помогли решить мои.

Я новичок в разработке для Android, и я пытаюсь использовать намерение камеры записать видео в своем приложении. Я использовал коды в руководстве разработчика Android https://developer.android.com/training/camera/videobasics

во-первых, я столкнулся (onActivityResult ничего не переопределяет), здесь я обнаружил, что должен проверить Intent, если он может быть пустым, это решило неотразимую проблему, но вызвало сбой приложения. и да, я поместил пользовательскую функцию в файл манифеста.

Какие-нибудь решения?

import android.content.Intent
import android.net.Uri
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.provider.MediaStore
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    val REQUEST_VIDEO_CAPTURE = 1

    override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        btn_record.setOnClickListener {
            Toast.makeText(this, "start recording", Toast.LENGTH_SHORT).show()

            Intent(MediaStore.ACTION_VIDEO_CAPTURE).also { takeVideoIntent ->
                takeVideoIntent.resolveActivity(packageManager)?.also {
                    startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE)
                }
            }   
        }
    }
    override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
        if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {
            val videoUri: Uri = intent!!.data
            videoView.setVideoURI(videoUri)
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Вашему проекту необходимо разрешение во время выполнения для доступа к камере.Как это подпадает под опасное разрешение.Вот статья для получения разрешения времени выполнения для камеры и микрофона.Вы можете использовать для своего проекта.https://pranaybhalerao.wordpress.com/2018/02/11/run-time-permission-in-androidkotlin/ Надеюсь, это поможет.

0 голосов
/ 07 марта 2019

Вам необходимо установить android: exported = "true" в файле AndroidManifest.xml, где вы объявляете это действие.

<activity
    android:name="MainActivity"
    android:label="Main_Activity" 
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" >
        </action>
    </intent-filter>
</activity>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...