1

我正在尝试使用新的 GoogleApiClient 在我的应用中设置 ActivityRecognition。我在任何地方都找不到任何文档(官方 android 文档仍然指的是现已弃用的 ActivityRecognitionClient)。

我设法编写的代码没有触发活动更新。

1)在我的 MainActivity 的 onCreate 里面:

    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(ActivityRecognition.API)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .build();

mGoogleApiClient.connect();

2)在 onConnected 里面:

    Intent i = new Intent(this, ActivityRecognitionIntentService.class);
    PendingIntent mActivityRecognitionPendingIntent = PendingIntent.getService(this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);

    Log.e("Aditya", "Connected to ActRec");
    ActivityRecognitionApi actRecAPI = new ActivityRecognitionApi()
    {
        public PendingResult<Status> requestActivityUpdates(GoogleApiClient googleApiClient, long l, PendingIntent pendingIntent)
        {
            Log.e("Aditya", "inside requestActivityUpdates()");
            return null;
        }

        public PendingResult<Status> removeActivityUpdates(GoogleApiClient googleApiClient, PendingIntent pendingIntent)
        {
            return null;
        }
    };

    actRecAPI.requestActivityUpdates(mGoogleApiClient, 0, mActivityRecognitionPendingIntent);

我的 ActivityRecognitionIntentService 永远不会收到更新。

我究竟做错了什么?或者是否有任何关于通过 GoogleApiClient 进行的 ActivityRecognition 的文档?

4

1 回答 1

3

解决了。连接到 GoogleApiClient 后,我​​只需执行此操作即可开始接收活动更新。

ActivityRecognition.ActivityRecognitionApi.
  requestActivityUpdates(mGoogleApiClient, 0, mActivityRecognitionPendingIntent);

无需创建自己的 ActivityRecognitionApi 对象。

于 2014-12-24T11:08:37.483 回答