我需要一步一步的程序,包括谷歌的一些示例安卓代码和一项活动中的登录以及Android eclipse中另一项活动的注销。
答案 0 :(得分:3)
经过一周多的努力才找到答案。 我这样做了, 在sharedpreferences中签名后保存boolean isSignedIn为真。
private SharedPreferences.Editor editor;
private SharedPreferences prefs;
editor = getSharedPreferences(getString(R.string.userDetails), MODE_PRIVATE).edit();
editor.putBoolean(getString(R.string.isSignedIn), true);
editor.apply();`
现在,当用户点击退出时,从任何活动中,将布尔值更改为false。
现在在您的登录活动中构建googleApiClient
。在其onStart方法中。
检查isSignedIn
是否为假。
@Override
public void onStart() {
super.onStart();
if (!prefs.getBoolean(getString(R.string.isSignedIn), false)) {
signOut();
}
}
在onConnected
@Override
public void onConnected(Bundle connectionHint) {
if (mGoogleApiClient.isConnected()) {
Log.i(TAG, "onConnected: " + "yes it is connected");
if (!prefs.getBoolean(getString(R.string.isSignedIn), false)) {
signOut();
}
}
}
这将注销并撤销访问。
public void signOut() {
if (mGoogleApiClient != null) {
Log.e(TAG, "signOut: " + mGoogleApiClient + mGoogleApiClient.isConnected());
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
if (mGoogleApiClient.isConnected()) {
new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
// ...
Log.i(TAG, "onResult: " + mGoogleApiClient);
}
});
Auth.GoogleSignInApi.revokeAccess(mGoogleApiClient).setResultCallback(
new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
Log.i(TAG, "onResult: Revoke Access status:" + status.getStatus());
}
});
}
}
}
答案 1 :(得分:0)
将此方法用于Logout ..
private GoogleApiClient mGoogleApiClient;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button mButton = (Button)findviewById(R.id.mButton);
mButton .setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
signOutFromGplus();
}
});
}
public void signOutFromGplus() {
if (mGoogleApiClient.isConnected()) {
Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
mGoogleApiClient.disconnect();
mGoogleApiClient.connect();
}
}
答案 2 :(得分:0)
要退出google plus,您可以使用应用程序类
学习你可以参考这些文章
https://developer.android.com/reference/android/app/Application.html
然后在此类中为您指定变量(使用此类的优点是该类在应用程序启动时启动,您可以在应用程序的任何位置访问它):
您的申请类名称:
public class MyApplication
{
public GoogleApiClient mGoogleApiClient;
}
并在您的登录活动类
中在登录时将其指定为变量
/**
* Sign-in into google
* */
private void signInWithGplus() {
if (!mGoogleApiClient.isConnecting()) {
MyApplication myApp = (MyApplication )getApplicationContext();
myApp.mGoogleApiClient = mGoogleApiClient;
mSignInClicked = true;
resolveSignInError();
}
}
和退出活动
public void signOutFromGplus() {
MyApplication myApp = (MyApplication )getApplicationContext();
if (myApp.mGoogleApiClient.isConnected()) {
Plus.AccountApi.clearDefaultAccount(myApp.mGoogleApiClient);
myApp.mGoogleApiClient.disconnect();
myApp.mGoogleApiClient.connect();
}
}
希望您了解此程序。