问题描述
任何人都可以让我知道如何解决此问题,这是范围问题还是其他问题。 网址: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","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);
}
}