android – 如何从应用程序本身禁用Google Fit并撤消权限

我已经设置了连接到Google Fit的应用,可以读取和写入有关用户身体的一些数据.当用户在应用设置中停用Google健身时,我会尝试通过以下方式撤消我的应用权限:
public void disableGoogleFit(){
    if(!mClient.isConnected()){
        Log.e(TAG,"Google Fit wasn't connected");
        return;
    }
    PendingResult<Status> pendingResult = Fitness.ConfigApi.disableFit(mClient);

    pendingResult.setResultCallback(new ResultCallback<Status>() {
        @Override
        public void onResult(Status status) {
            if(status.isSuccess()) {
                Log.i(TAG,"Google Fit disabled");
            }else{
                Log.e(TAG,"Google Fit wasn't disabled " + status);
            }
        }
    });
}

即使我可以成功读取/写入数据,禁用Fit也会返回错误:

Google Fit wasn't disabled Status
{statusCode=unknown status code: 5010,resolution=null}

Edit1:添加了整个方法,其中可见,该客户端在我尝试禁用Fit时连接.

解决方法

如果我撤消了操作的Google Fit方面的访问而不是调用disableFit()方法,我遇到了这个问题.当使用disableFit()方法时,事情变得很糟糕,重新连接是一个蛋糕步行.但是当Google Fit撤销访问时,它并没有消除现有的OAuth,因此您陷入了困境. Limbo因为您已断开连接但未发出OAuth质询,因此您不断收到5010错误.

我想出的唯一解决方案是通过连接到另一个帐户来进行OAuth挑战.那你很好.这听起来像是Google Fit上的一个问题,而客户端则没有任何问题.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...