jjzjj

ios - HealthKit:保存在 iPhone 上的锻炼在 Activity App 中不可见

coder 2023-09-23 原文

使用HealthKit,我在省钱

  1. 锻炼
  2. 相应的 active 能量样本
  3. 相应的步行/运行距离样本

我在 Apple Watch 和 iPhone 上运行相同的代码。

当我在 iPhone 上保存时

  • 我可以在我的 iPhone 应用程序中选择锻炼和样本
  • 我可以在 iPhone 健康应用程序中看到锻炼和样本
  • 锻炼和样本在 iPhone 事件应用程序中(差)

当我在 apple watch 上保存时

  • 我可以在我的 iPhone 应用程序中选择锻炼和样本
  • 我可以在 iPhone 健康应用程序中看到锻炼和样本
  • 我可以在 iPhone 事件应用程序中看到锻炼和样本

当我在 Apple Watch 上保存并在我的 iPhone 应用程序中删除它时

  • 我无法在我的 iPhone 应用程序中选择锻炼和样本(好)
  • 我在 iPhone 健康应用程序中看不到锻炼和样本(好)
  • 直到 watchOS 2.1 + iOS 9.2.1:我仍然可以在 iPhone 事件应用程序中看到锻炼和样本(非常糟糕)
  • 使用 watchOS 2.2 beta 5 + iOS 9.3 beta 5 进行测试:锻​​炼和样本已从 iPhone 上的事件应用程序中删除(良好)

当我在 Apple Watch 上保存并在我的 Apple Watch App 中删除它时

  • 使用 watchOS 2.2 beta 5 + iOS 9.3 beta 5 进行测试:一切如预期:在 watch 和 iPhone 上使用任何提到的应用程序(自 iOS 9.3 起良好)不可见/不可选择
  • 直到 watchOS 2.1 + iOS 9.2.1:iPhone 上的锻炼和样本没有被删除。 (在 iOS 9.2.1 之前很糟糕)

问题

是我做错了什么,还是 HealthKit 和 iPhone 事件应用程序的工作方式如此?

更具体的问题:

  • 如何在 iPhone 上保存锻炼和样本,以便锻炼和样本不仅在同一部 iPhone 上的“健康”应用程序中可见,而且在同一部 iPhone 上的“事件”应用程序中可见?
  • 如何删除 iPhone 上使用 Watch App 保存的锻炼和样本,这样锻炼和样本不仅会在同一 iPhone 上的 Health App 中删除,还会在 Activity App 中删除同一部 iPhone?

如果这不是我的错误,没有任何 iOS 应用程序可以可靠地保存事件应用程序中显示的锻炼。 iOS 应用程序可以将数据发送到 watch 应用程序,这是比较容易的部分。但我不知道如何在后台处理 watch 上的这些数据。用户必须启动 watch 应用程序才能处理数据。

测试是在硬件上进行的,而不是在模拟器上进行的。 iOS 9.2.1、watchOS 2.1

我使用 watchOS 2.2 beta 5 + iOS 9.3 beta 5 添加了测试。我编辑了上面的结果。总结:删除修复,iPhone保存还是不行。

在 iOS 9.3/watchOS 2.2 中,Apple 添加了 HKActivitySummaryHKActivitySummaryQueryHKActivityRingView。简而言之:关于 iPhone 上的事件应用程序所说的一切也适用于 HKActivitySummaryQuery。它们共享上述功能和错误。

最佳答案

这绝对是目前难以驾驭的东西!三个不同的问题有不同的解释。

  1. 当您在 iPhone 上保存锻炼时:

    • 保存在手机上的锻炼不用于提供事件积分。它们必须源自 Apple Watch。
    • 修改:从 iOS 10 开始,如果用户拥有 Apple Watch,保存在手机上的锻炼将计入事件。
  2. 当您在 Apple Watch 上保存锻炼并在 iPhone 应用程序中将其删除时:

    • 在 iOS 9.2 及更早版本中,删除手机上的样本不会删除 Apple Watch 上的相同样本,而 Apple Watch 是实际计算 Activity 的地方。此问题已在 iOS 9.3 中修复
    • 删除 HKWorkout 示例不足以删除与该锻炼关联的示例。例如,如果您不想再存在相关的 active 能量样本,则需要明确删除它们。也就是说,删除锻炼应该从事件环中删除它的贡献。如果没有,那么这听起来像是一个值得单独提交的错误,因为您的原始错误可能被解释为请求将 iPhone 的锻炼计入事件。

关于ios - HealthKit:保存在 iPhone 上的锻炼在 Activity App 中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35564761/

有关ios - HealthKit:保存在 iPhone 上的锻炼在 Activity App 中不可见的更多相关文章

  1. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  2. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  3. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  4. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  5. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  6. ruby-on-rails - rspec - 如何检查方法是否存在? - 2

    我的模型有defself.empty_building//stuffend我怎样才能对这个现有的进行rspec?,已经尝试过:describe"empty_building"dosubject{Building.new}it{shouldrespond_to:empty_building}endbutgetting:Failure/Error:it{shouldrespond_to:empty_building}expected#torespondto:empty_building 最佳答案 你有一个类方法self.empty_bu

  7. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  8. ruby-on-rails - Ruby - 如何从 ruby​​ 上的 .pfx 文件中提取公钥、rsa 私钥和 CA key - 2

    我有一个.pfx格式的证书,我需要使用ruby​​提取公共(public)、私有(private)和CA证书。使用shell我可以这样做:#ExtractPublicKey(askforpassword)opensslpkcs12-infile.pfx-outfile_public.pem-clcerts-nokeys#ExtractCertificateAuthorityKey(askforpassword)opensslpkcs12-infile.pfx-outfile_ca.pem-cacerts-nokeys#ExtractPrivateKey(askforpassword)o

  9. ruby-on-rails - ActiveRecord 的 find_or_create* 方法是否存在根本性缺陷? - 2

    有几种方法:first_or_create_by、find_or_create_by等,它们的工作原理是:与数据库对话以尝试找到我们想要的东西如果我们找不到,就自己做保存到数据库显然,并发调用这些方法可能会使两个线程都找不到它们想要的东西,并且在第3步中一个线程会意外失败。似乎更好的解决方案是,创建或查找即:提前在您的数据库中创建合理的唯一性约束。如果你想保存一些东西,就保存它如果有效,那就太好了。如果它因为RecordNotUnique异常而无法工作,它已经存在,太好了,加载它那么在什么情况下我想使用Rails内置的东西而不是我自己的(看起来更可靠)create_or_find?

  10. ruby - 为什么不能使用类IO的实例方法noecho? - 2

    print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上

随机推荐