我正在使用感知API来检测某人何时开始驾驶和何时停止驾驶。实际上,我正在使用如下所示的TransitionRequests,其中未决的Intent链接到处理开始驾驶活动的广播接收器。
val activityTransitionRequest = ActivityTransitionRequest(listOf(ActivityTransition.Builder()
.setActivityType(DetectedActivity.IN_VEHICLE)
.setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_ENTER)
.build()))
ActivityRecognition.getClient(context).requestActivityTransitionUpdates(activityTransitionRequest, pendingIntent)
我想知道是否有一种很好的方法可以模拟或使用某些服务的测试实现,或使用伪造的位置应用程序(使用的Lockito似乎不起作用)。目前,我无法模拟位置ActivityTransitionResult.extractResult(intent)部分的extractResult。在下面的代码中,您可以看到我想要实现的目标,但这并不重要,我只想能够伪造“开始驾驶活动”。
AndroidInjection.inject(this, context)
super.onReceive(context, intent)
doAsync {
FenceHelper.askPermissions(context!!)
if (ActivityTransitionResult.hasResult(intent)) {
val location= locationService.getLocation()
if (location != null) {
val result = ActivityTransitionResult.extractResult(intent)
for (event in result!!.transitionEvents) {
doSomeRelatedStuff()
}
}
}
}