我正在使用 registerForActivityResult 来启动相机或画廊,但是 registerForActivityResult 能够像 Intent.ACTION_CHOOSER 那样做吗?
cameraLauncher =
registerForActivityResult(ActivityResultContracts.TakePicture()) { success ->
if (success) {
// do somthing
}
}
galleryLauncher =
registerForActivityResult(ActivityResultContracts.GetContent()) {
// do somthing
}
以旧方式
val galleryIntent = Intent(Intent.ACTION_GET_CONTENT)
galleryIntent.addCategory(Intent.CATEGORY_OPENABLE)
galleryIntent.type = "image/*"
val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
val chooserIntent = Intent(Intent.ACTION_CHOOSER)
chooserIntent.putExtra(Intent.EXTRA_INTENT, galleryIntent)
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, arrayOf(cameraIntent))
startActivity(chooserIntent)