android - Android kotlin_Camera Intent 崩溃
问题描述
也许这个问题是多余的,但这里建议的解决方案并没有解决我的问题。
我是 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)
}
}
}
解决方案
您的项目需要运行时权限才能访问相机。因为它属于危险的权限集。这是一篇关于获取相机和麦克风的运行时权限的文章。您可以将其用于您的项目。 https://pranaybhalerao.wordpress.com/2018/02/11/run-time-permission-in-androidkotlin/ 希望它会有所帮助。