Look this startActivityForResult() codes, this function was deprecated. How to change this codes in Fragment?
What's mean "Call Activity.startActivityForResult(Intent, int) from the fragment's containing Activity."??
Please, simply guide to me...
private const val REQUEST_PHOTO = 2
class ExampleFragment:Fragment(), DatePickerFragment.Callbacks {
private lateinit var photoUri : Uri
override fun onStart() {
super.onStart()
...
photoButton.apply {
val packageManager : PackageManager = requireActivity().packageManager
val captureImage = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
val resolvedActivity : ResolveInfo? =
packageManager.resolveActivity(captureImage,
PackageManager.MATCH_DEFAULT_ONLY)
if (resolvedActivity == null) {
isEnabled = false
}
setOnClickListener {
captureImage.putExtra(MediaStore.EXTRA_OUTPUT, photoUri)
val cameraActivities : List<ResolveInfo> =
packageManager.queryIntentActivities(captureImage, PackageManager.MATCH_DEFAULT_ONLY)
for (cameraActivity in cameraActivities) {
requireActivity().grantUriPermission(
cameraActivity.activityInfo.packageName,photoUri,
Intent.FLAG_GRANT_WRITE_URI_PERMISSION
)
}
startActivityForResult(captureImage, REQUEST_PHOTO) // <<<< Deprecated
}
}
}