将HealthKit Delete传播到后端

时间:2015-03-09 19:14:16

标签: ios xamarin health-kit hkobserverquery

希望这个问题听起来不太傻,但我还没能找到解决方案。我目前正在使用与HealthKit集成的Xamarin编写应用程序。存储在HK中的数据会定期同步到服务器。这是通过HKAnchoredObjectQuery完成的,它可以提取食物相关性。

由于定期提取数据,因此在同步之间,用户可能会删除HealthKit中的值。该删除需要在下次同步时传播回服务器。

我最初的想法是使用观察者查询来执行此操作。

我的问题是:对HealthKit使用Observer查询,是否有办法确定触发查询的操作是否为删除操作?

public void CheckForDelete (Subject subject)
    {
        var sampleType = HKObjectType.GetCorrelationType (HKCorrelationTypeKey.IdentifierFood);
        var predicate = HKQuery.GetPredicateForSamples (NSDate.DistantPast, NSDate.Now, HKQueryOptions.None);
        var observerQuery = new HKObserverQuery (sampleType, predicate, (query, completion, error ) => {
            //...Determine if action was a Delete
            //Code to delete on backend

            completion();
        });

        HealthKitStore.ExecuteQuery (observerQuery);
    }

1 个答案:

答案 0 :(得分:1)

在iOS 9中,HKAnchoredObjectQuery已被修改为报告已删除的对象。