标签: activity-recognition

在Android模拟器中模拟ActivityRecognition事件

有没有一种在Android模拟器中模拟DetectedActivity.IN_VEHICLE的好方法.目前,我正在尝试通过telnet发送命令来调用ActivityRecognitionApi来检测事件.

sensor set acceleration {x}:{y}:{z}
geo fix {latitude} {longitude}
Run Code Online (Sandbox Code Playgroud)

android location accelerometer activity-recognition

7
推荐指数
1
解决办法
1055
查看次数

是否可以为ActivityTcognitionApi模拟检测到的活动以进行测试?

Google Play服务提供了一种ActivityRecognitionApi可让您检测各种用户活动(通过DetectedActivity)的功能,例如用户是在行走还是在跑步.

为开发和测试目的,是否可以模拟这些活动?

android google-play-services activity-recognition

7
推荐指数
2
解决办法
2183
查看次数

如何使用活动识别来检测步行/跑步与on_foot

在Google Play服务活动识别中有

DetectedActivity.RUNNING,
DetectedActivity.WALKING,
DetectedActivity.ON_FOOT
Run Code Online (Sandbox Code Playgroud)

当我得到行走或跑步的活动更新时,我得到ON_FOOT

我该如何区分?

我知道它说RUNNING和WALKING:"这是ON_FOOT的子活动"

谢谢你的帮助.

android google-play-services activity-recognition

6
推荐指数
2
解决办法
6715
查看次数

步行差异和行走识别中的行走差异

在Android 4.4谷歌播放服务中引入了"行走"活动识别,但已经有on_foot认可.

  • 两者有什么区别?

android activity-recognition

6
推荐指数
1
解决办法
718
查看次数

Android defaultSensor TYPE_SIGNIFICANT_MOTION 在 24 小时后返回 null

我有点困惑为什么我的Transitions API解决方案通常在第一天或两天有效,然后停止接收任何更新。我更深入地研究了它,发现了一个线索,其中讨论了我们如何需要SIGNIFICAT_MOTION激活传感器才能唤醒传感器,最终唤醒Transitions API整个解决方案。

我所做的是实现了侦听器,它可以帮助我了解SIGNIFICANT_MOTION传感器何时启用以及何时不启用:

    try {
        boolean request = sensorManager.requestTriggerSensor(triggerEventListener, sensor);
        Timber.e("Transitions API is working. If returns false - device is STILL");
    } catch (IllegalArgumentException exception) {
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        sensor = sensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);

        Timber.e("SensorManager - " + sensorManager + ", sensor - " + sensor); //TODO: Later delete
    }
Run Code Online (Sandbox Code Playgroud)

现在,如您所见,每当此代码抛出异常时,我都会尝试重新初始化传感器,以确保稍后在应用程序中不会抛出异常。日志显示sensor is null。

当传感器在一两天后变为空时(第一天它运行良好并且设备正确返回传感器值),除了重新启动设备之外,没有其他方法可以解决问题。

问题:为什么sensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);第一天返回值(传感器),但 48 小时后返回 null 并停止工作?(我相信这会搞乱我的 Transitions API 解决方案,并且是它无法正常工作的根本原因)。

附加信息。

手机:Google Pixel 3A 操作系统:Android …

android activity-recognition significant-motion-sensor activitytransitionapi

6
推荐指数
0
解决办法
373
查看次数

活动识别 Api 在某些设备上不起作用

位置访问是否依赖于活动识别过程?在某些设备中,只有在打开我的位置设置后,我才能让我的活动识别示例工作

android activity-recognition

5
推荐指数
1
解决办法
1522
查看次数

将位置模式切换为GPS并返回后,Google Play服务活动识别无效

Google Play服务更新至4.1后,我们的应用程序面临一个奇怪的问题.我们在Google Play服务中使用了活动识别功能.如果用户将"位置"模式更改为"仅设备"并返回"省电",则活动识别客户端将停止提供活动更新.我们试图停止并重新请求更新,但它不起作用.我们发现只有让它重新运行的解决方案才是重新启动手机.

重现步骤:

  1. 从Android开发者网站下载并运行活动识别示例程序.
  2. 打开系统设置 - >位置 - >模式,将模式更改为仅设备.将其更改为省电.将出现位置同意弹出窗口,按同意.
  3. 回到您的示例程序,您会发现应用程序没有获得任何活动更新.
  4. 停止更新,再次关闭和打开应用程序,在手机重新启动之前无效.

我们在Google Play Services 4.2版本中测试了相同的方案.问题在4.2中仍然存在.

在早于KitKat的手机中,可以通过关闭"使用无线网络"并在位置服务下再次打开来重现同样的问题.

任何通过这一障碍的建议都将受到赞赏.

android google-play-services activity-recognition

5
推荐指数
1
解决办法
1791
查看次数

活动识别在Android 6.0中运行权限

我正在尝试实现活动识别,因此它将支持api 23.我已经按照此处运行的权限指南进行操作:

https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous

我无法确定活动识别是否被归类为危险许可或正常?

即使在谷歌的活动识别样本中,他们也没有针对api 23:https://github.com/googlesamples/android-play-location/tree/master/ActivityRecognition

Android 6.0中是否可能不支持活动重新认知?

android android-permissions activity-recognition android-6.0-marshmallow

5
推荐指数
1
解决办法
2507
查看次数

Android ActivityRecognition 和 IMMUTABLE PendingIntent

我正在使用 Android ActivityRecognition api。当将 PendingIntent 标志设置为PendingIntent.FLAG_UPDATE_CURRENT 或 PendingIntent.FLAG_IMMUTABLE(按照建议?)时,收到的意图不包含任何额外内容。

我的使用方法如下:

首先,我创建一个待处理的意图,如下所示:

private val intent: Intent = Intent(context, ActivityRecognitionReceiver::class.java) 
private val mActivityTransitionPendingIntent = PendingIntent.getBroadcast(context, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) //This gives warning that Mutability flag required
Run Code Online (Sandbox Code Playgroud)

然后,我像这样设置转换列表:

private val INTERESTING_TRANSITION = intArrayOf(
    DetectedActivity.IN_VEHICLE,
    DetectedActivity.STILL,
    DetectedActivity.ON_FOOT,
    DetectedActivity.WALKING,
 )
Run Code Online (Sandbox Code Playgroud)

接下来,创建一个请求:

val transitions = mutableListOf<ActivityTransition>()

   for (activity in INTERESTING_TRANSITION) {
        transitions.add(
            ActivityTransition.Builder()
                .setActivityType(activity)
                .setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_ENTER)
                .build()
        )
        transitions.add(
            ActivityTransition.Builder()
                .setActivityType(activity)
                .setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_EXIT)
                .build()
        )
    }

val request = ActivityTransitionRequest(transitions)
Run Code Online (Sandbox Code Playgroud)

最后注册请求:

   val transitionTask: Task<Void> = mActivityRecognitionClient.requestActivityTransitionUpdates(request, …
Run Code Online (Sandbox Code Playgroud)

android activity-recognition

5
推荐指数
1
解决办法
1029
查看次数

Android Transitions API - 24-48 小时后停止接收任何更新

我正在使用Transitions API,前 24-48 小时一切正常 - 我从 API 收到身体活动变化,但 24-48 小时后什么也没有。

在 Transitions API Receiver 下,我使用Foreground Service48 小时后仍处于活动状态的接收器。我可以通过查看日志来验证这一点;此外,Location (Fused Location Client)24-48 小时后仍然会有更新,而 Transition API 似乎已经死了。

有人经历过这个吗?我确实认为使用 Worker 重置(取消注册然后再次注册)转换 API 可能是替代方案(每 1-2 小时一次)。不确定这是否有帮助。我有一种感觉,当应用程序进入打瞌睡模式/某种睡眠状态时,就会发生这种情况。

另外,我的前台服务使用exported=false,也许将其设置为true会有帮助?(我希望有人给出答案并解释为什么你应该使用其中之一)

操作系统:安卓12

android activity-recognition activitytransitionapi

5
推荐指数
1
解决办法
398
查看次数