3

我使用 Awareness API 进行驾驶检测设置,用于“启动”和“停止”的围栏。

问题

该应用程序检测到我大约有 50% 的时间在开车,但通常只有当我在开车时打开屏幕时。这违背了在驾驶时能够执行我的应用程序的一些有用功能的目的。

其次,我还经常发现我的手机一直坐在桌子上,完全静止,同时显示“开始”和“停止”驾驶的通知。

所以,TL;DR... 驾驶检测的误报率非常高,实际驾驶时的准确性很差。

有没有其他人注意到这一点?有什么办法解决吗?

代码

使用广播接收器设置非常简单(我还使用了具有相同结果的服务 PendingIntent):

Awareness.FenceApi.updateFences(
            mGoogleClient,
            new FenceUpdateRequest.Builder()
                    .addFence(ActivityChangeReceiver.FENCE_START_DRIVING,
                              DetectedActivityFence.starting(DetectedActivityFence.IN_VEHICLE),
                              ActivityChangeReceiver.getStartDrivingPendingIntent(MainActivity.this))
                    .addFence(ActivityChangeReceiver.FENCE_STOP_DRIVING,
                              DetectedActivityFence.stopping(DetectedActivityFence.IN_VEHICLE),
                              ActivityChangeReceiver.getStopDrivingPendingIntent(MainActivity.this))
                    .build())
                      .setResultCallback(status -> {
                          if (status.isSuccess()) {
                              Timber.i("Fences successfully registered.");
                              registerReceiver(new ActivityChangeReceiver(), new IntentFilter(ActivityChangeReceiver.FENCE_RECEIVER_ACTION));
                          }
                          else {
                              Timber.e("Fences could not be registered: %s", status);
                          }
                      });

当我调用 BroadcastReceiver 时,我只为每个显示一个通知:启动和停止

4

0 回答 0