- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何使用 Tasker 将 Google Fit 中的数据读取到变量中?
更具体地说,我想阅读例如我今天的当前步数由我的手机 + 健身追踪器计算并提供给 Google Fit。我的目标是让一个变量包含这个数字然后使用它。我读过 Google Fit History API,但不知道如何通过 Tasker 访问它。
最佳答案
经过一天的反复试验,我确实弄明白了。这是一个相当“复杂”的过程。
准备:
第 1 步 - 在 https://console.developers.google.com/project 上创建一个项目并获得客户端 ID 和 secret 。 (有很多更详细的教程)。该项目需要配置为一个应用程序——而不是一个 web 东西。您还需要将 urn:ietf:wg:oauth:2.0:oob
添加到重定向 URL。 (http://localhost
可能留在那里)
第 2 步 - 为 Tasker 安装 RETask 插件。
第 3 步 - 转到 https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/fitness.activity .read&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&client_id=YOUR_CLIENT_ID
。你会在那里得到一个代码。复制该代码。
第 4 步 - 创建一个将使用 RETask 插件操作的任务。将其配置为:
Request Type: POST
Host: https://accounts.google.com/o/oauth2/token
选中启用自定义正文
将自定义正文设置为:code=%THE_COPIED_CODE&client_id=%YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code
切换到 Header
并按 Add more
:
Name: Content-Type
Value: application/x-www-form-urlencoded
如果一切顺利,您将获得返回代码 200。使用 splitter
"
拆分返回的响应 (%rtres
)。保存位于 %rtres4
中的 token 和您的位于 %rtres14
内的刷新 token 。
获取步数
第 1 步 - 在获得任何东西之前,您需要有一个有效的 token 。在准备过程中获得的 token 仅在有限的时间内有效。您可以使用本应保存的刷新 token 请求新 token 。要获得工作 token ,请使用不同的主体重做第 4 步:
client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&refresh_token=YOUR_REFRESH_TOKEN&grant_type=refresh_token
重复拆分,新的 token 将保存在%rtres4
中。
第 2 步 - 现在您终于可以获得宝贵的数据。首先,定义开始和结束时间(保存在 %start
和 %end
中)。请注意,这些必须以纳秒为单位。您可以使用 %TIMEMS*1000000
。因此,添加具有以下配置的 RESTask 操作:
Request Type: GET
Host: https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:com.google.android.gms:estimated_steps/datasets/%start-%end
不要不检查启用自定义正文
切换到 Header
并按 Add more
(3 次):
Name: Content-Type
Value: application/json
Name: Authorization
Value: Bearer YOUR_TOKEN
Name: X-JavaScript-User-Agent
Value: Google APIs Explorer
如果一切顺利,您将获得返回代码 200。步数将在响应中返回。
请随意使用这些数据做任何您想做的事。要获得完整的步数,您可能需要汇总这些值。 (拆分响应并使用 for 循环迭代)。我确实选择将步数传递给 Zooper 小部件,以便在主屏幕上显示我自己的自定义 Google Fit 步数小部件。
关于android - 如何使用 Tasker 读取 Google Fit 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29298750/
我想在 tasker 中创建一个执行多次点击的任务。我想要在一秒钟内进行 75 次模拟屏幕点击。我正在运行一个 shell 命令:inpet tap x y 无论我是在任务本身中对多个 Action
我正在考虑购买第二部 Android 手机,我当前的 Android 手机底部的黑色栏中有“后退”、“主页”和“最近使用的应用程序”按钮。新的则不然,因为它们都是物理按钮。 我不太喜欢物理按钮,并且希
我正在尝试开发一个列表 Activity (最初),其中填充了在 Tasker 中创建的任务。有什么办法可以从 Tasker 获取任务名称吗?我可以通过编程方式与 Tasker 通信的唯一方法是使用
我正在为 Taker Android 应用制作一个插件。该插件实质上将允许人们使用自己的设置值动态创建列表和卡片 View 。 我认为还允许使用 Tasker 变量来设置列表项等会很好。这就是我正在努
我创建了一个任务,使用 HTTP GET 从 500px 获取 JSON 结果,然后使用 Javascriptlet 代码: var arr=JSON.parse(global('HTTPD'));
当我的手机检测到我正在运行或骑自行车时,我想启动 Endomondo 跟踪。 AutoLocation 允许我使用运行、步行或骑自行车的状态来启动应用程序。然后,自动输入允许我开始跟踪。 到目前为止我
我想知道我的应用程序的 Activity 是否是从 Tasker 调用的。有没有办法确定这一点? 我尝试了以下代码。然而,没有任何代码能够获取Tasker的信息。 // [1] null was re
我正在尝试检测何时拍摄照片,作为触发器(也为摄影师拍照) Tasker 有硬件相机按钮的触发器,但我的手机 (Galaxy Nexus) 只有软件按钮。 有什么想法吗?我在想使用触发器Action -
我读了文章Build a Super Simple Tasker我喜欢这个主意。这是一个非常简单的调度程序,但他可以通过单个 stackit 实现实时和抢占式多任务处理。我喜欢这个想法,但是当我尝试为
我在 android input tap 653 100 中有这个 shell 命令,使用 Tasker 应用程序来模拟 tap 命令。这个工作正常,但我如何执行命令 50 次或 100 次?我知道我
如何使用 Tasker 将 Google Fit 中的数据读取到变量中? 更具体地说,我想阅读例如我今天的当前步数由我的手机 + 健身追踪器计算并提供给 Google Fit。我的目标是让一个变量包含
我必须使用 Tasker 下载文件,但 HTTP Get 操作的默认超时限制(120 秒)不够。如何将超时设置为零(从不)或超过 120 秒?谢谢! 最佳答案 为什么 120 秒的超时时间太短? 当建
我正在尝试通过任务任务设置 LineageOS 系统配置文件。我找到了一些 CM13 的示例,但我无法在 LineagesOS 上使用它。我不太喜欢 Java。 到目前为止我做了什么...... 创建
我创建了一个场景和 webview1 元素: 模式:网址 来源:www.google.com 创建了一个展示场景的任务 现在,我想创建一个 JavaScript 任务以发送到 Webview: $("
我有一台小米6,支持两张SIM卡。我需要弄清楚如何在工作时间以外使用 Tasker 关闭第二张 SIM (SIM2)。 我已经弄清楚如何使用 Tasker 打开 SIM2 的设置页面: Action:
如何在我作为后台服务运行的应用程序之外,通过 Java 可靠地模拟 Android 上的触摸事件(无需 root)? 虽然之前有人问过这个问题,但大多数答案都使用 ADB。(例如 How to sim
我是一名优秀的程序员,十分优秀!