I have implemented feature for Android Watch app to detect the start & end of user Running Activity using Google ActivityRecognition API . The App able to detect the start and stop of running activity but randomly broadcast set of ActivityRecognition is triggering without any activity. This activity recognition should work when app is background as well.
Please find the snippets below,
private val transitions transitions +=
ActivityTransition.Builder()
.setActivityType(ACTIVITY_TYPE)
.setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_ENTER)
.build()
transitions +=
ActivityTransition.Builder()
.setActivityType(ACTIVITY_TYPE)
.setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_EXIT)
.build()
val activityTransitionRequest = ActivityTransitionRequest(transitions)
val intent = Intent(appContext, GearUpActivityTransitionReceiver::class.java).apply {
action = ACTION_ACTIVITY_TRANSITION
}
intentActivityTransition =
PendingIntent.getBroadcast(
appContext, 100,
intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_MUTABLE
)
ActivityRecognition.getClient(appContext)
.requestActivityTransitionUpdates(activityTransitionRequest, intentActivityTransition!!)
.addOnSuccessListener {
GLogger.d(TAG, "addOnSuccessListener == >activityTransitionRequest")
}.addOnFailureListener { exception ->
GLogger.e(TAG, "addOnFailureListener == > ${exception.message}")
}
My Manifest,
<receiver
android:name=".receiver.GearUpActivityTransitionReceiver"
android:enabled="true"
android:exported="true" />
Android OS : 11, Device Galaxy Watch4 Classic,Watch OS version 4.5
Please let me know anybody faced similar issue.