获得“消息”:“没有读取此私有数据源的数据的权限” 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","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);
    }
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...