Макет осведомленности API - PullRequest
       25

Макет осведомленности API

0 голосов
/ 06 сентября 2018

Я использую API осведомленности, чтобы определять, когда кто-то начинает движение, а когда кто-то прекращает движение. На самом деле я использую TransitionRequests, как показано ниже, где pendingIntent ссылается на широковещательный приемник, обрабатывающий начальную активную деятельность.

val activityTransitionRequest = ActivityTransitionRequest(listOf(ActivityTransition.Builder()
            .setActivityType(DetectedActivity.IN_VEHICLE)
            .setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_ENTER)
            .build()))
    ActivityRecognition.getClient(context).requestActivityTransitionUpdates(activityTransitionRequest, pendingIntent)

Мне интересно, есть ли хороший способ для насмешки или использования тестовой реализации некоторых сервисов или с помощью приложения с поддельным местоположением (использовался Lockito, который, похоже, не работал). На данный момент я не могу смоделировать extractResult для части ActivityTransitionResult.extractResult (intent). В приведенном ниже коде вы можете увидеть, чего я хочу достичь, но это на самом деле не имеет значения, я просто хочу иметь возможность имитировать «начало вождения».

    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()
                }
            }
        }
    }
...