OnActivityResult()
is deprecated in androidx. I took reference from below links
I implemented for signup thing in my project ..like .I created resultcontract by registering the activity
in place of startActivityForResult
i replaced by resultcontract.launch(intent)
and getting result in resultcontract
(followed above links). Now i have doubt in one function that is turn on gps.
for this we have used
val rae = e as ResolvableApiException
rae.startResolutionForResult(context, GPS_REQUEST)
earlier it was startActivityForResult
, now it is startResolutionForResult
having confusion how to get result of gps request ( in code , we are getting result in
onActivityResult).how can i implement this using new way?
I found a solution for this problem, using the recent API's to start something for result.
So, you can pretty much get the resolution from ResolvableApiException
, which is a PendingIntent
, and start it with StartIntentSenderForResult
contract, like this
contract:
private val resolutionForResult = registerForActivityResult(
ActivityResultContracts.StartIntentSenderForResult()
) { activityResult ->
// do whatever you want with activity result...
}
how to start:
.addOnFailureListener { exception ->
if (exception is ResolvableApiException) {
try {
val intentSenderRequest = IntentSenderRequest
.Builder(exception.resolution).build()
resolutionForResult.launch(intentSenderRequest)
} catch (throwable: Throwable) {
// Ignore the error.
}
}
}