google-fit - 获取“消息”:“无权读取此私有数据源的数据。” 对于 TYPE_LOCATION_SAMPLE 和 TYPE_LOCATION_TRACK
问题描述
任何人都可以让我知道如何解决这个问题,是这个范围问题还是其他问题。网址:https ://www.googleapis.com/fitness/v1/users/me/dataset:aggregate
"error": {
"status": "PERMISSION_DENIED",
"message": "No permission to read data for this private data source.",
"code": 403,
"errors": [
{
"reason": "forbidden",
"message": "No permission to read data for this private data source.",
"domain": "global"
}
]
}
}```
解决方案
您首先需要访问 GPS,因此您应该将权限添加到您的manifest.xml
文件中:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.fitness.sync">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
....
在您的代码中,您应该将权限传递给登录帐户,如下所示:
public void signIn(){
FitnessOptions fitnessOptions = FitnessOptions.builder()
// add your read & write permissions here
.addDataType(DataType.TYPE_LOCATION_SAMPLE, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_LOCATION_SAMPLE, FitnessOptions.ACCESS_WRITE)
.addDataType(DataType.TYPE_LOCATION_TRACK, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_LOCATION_TRACK, FitnessOptions.ACCESS_WRITE)
...
.build();
GoogleSignInAccount account = GoogleSignIn.getAccountForExtension(this, fitnessOptions);
if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
GoogleSignIn.requestPermissions(
this, // your activity
GOOGLE_FIT_PERMISSIONS_REQUEST_CODE, // e.g. 1
account,
fitnessOptions);
}
}
推荐阅读
- python - Jitsi:通过 API(或 Python)创建房间?
- postgresql - 连接来自 3 个表的数据
- javascript - 在数组中找到两个数字,使它们加起来等于给定的数字
- google-sheets - IMPORTHTML/IMPORTXML 突然返回“未找到 URL 的资源”
- gradle - 使用 ml-gradle 加载 XQuery 文件时如何在 URI 中添加前缀
- bash - 如何根据特定列的某些特定值应用一些数学运算
- c# - 如何将字符串转换为整数?
- c# - TPL 数据流使用旧数据而不是最新数据
- amazon-dynamodb - 在 DynamoDB 中拥有一个既是哈希键又是全局索引的属性是什么意思?
- python - 正则表达式 (regex) 从 Python 中的字符串中删除单词“and”、非字母数字字符和空格