使用代码调用系统相机进行拍摄照片发现调用startActivityForResult方法过时
查看竟然被标志为Deprecated
于是带着好奇心去研究一番,既然这个过时了,那要怎么使用原本的startActivityForResult的功能?需要注册一个ForActivityResult:
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
val startActivity =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
//此处进行数据接收
if (it.resultCode == Activity.RESULT_OK) {
//成功数据
}
}
//加载跳转方式
startActivity.launch(intent)
说白了就是将原本启动Activity的方式
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(intent,200)
改成如下模式启动
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
val startActivity =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
//此处进行数据接收(接收回调)
if (it.resultCode == Activity.RESULT_OK) {
//成功数据
}
}
//跳转方式
startActivity.launch(intent)
到这里就差不多了