问题描述
我尝试使用this,但是推荐的操作却无效:
Fitness.getConfigClient(this,GoogleSignIn.getLastSignedInAccount(this)).disableFit()
我如何通过Google进行身份验证:
if (!GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(this),fitnessOptions)) {
GoogleSignIn.requestPermissions(this,REQUEST_OAUTH_REQUEST_CODE,GoogleSignIn.getLastSignedInAccount(this),fitnessOptions);
} else {
subscribe();
}
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
if (resultCode == Activity.RESULT_OK) {
if (requestCode == REQUEST_OAUTH_REQUEST_CODE) {
subscribe();
}
}
}
public void subscribe() {
Fitness.getRecordingClient(this,GoogleSignIn.getLastSignedInAccount(this))
.subscribe(DataType.TYPE_STEP_COUNT_CUMULATIVE)
.addOnCompleteListener(
new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.i(TAG,"Successfully subscribed!");
} else {
Log.w(TAG,"There was a problem subscribing.",task.getException());
}
}
});
}
我需要能够获取上次登录的Google帐户,并向用户提供退出其Google帐户的选项。
解决方法
要从应用程序断开Google帐户的连接,您应使用GoogleSignIn中的signOut方法,该方法将保留授予的权限,或者您可以使用revokeAccess方法退出并撤销授予的权限:
val options = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.addExtension(getFitnessOptions())
.requestProfile()
.build()
GoogleSignIn.getClient(this,options).signOut() // or GoogleSignIn.getClient(this,options).revokeAccess()