Jar*_*vis 10 android android-activity android-studio facebook-sdk-3.0 google-plus-signin
我已经使用各自的方法集成了谷歌和Facebook注册.但是在成功签名之后,我想打开不同的活动,同样用户可以去各种不同的活动.我使用了操作栏,我可以选择从用户登录的任一帐户中退出.如果我处于不同的活动,那么我可以在主要活动中退出用户.我得到一个例外,我无法将apiclient引用(对于谷歌)和会话引用(对于Facebook)传递给另一个活动.请帮忙.提前致谢.
som*_*esh 14
从谷歌退出:
只需在您的新活动中添加此项,您希望google +的注销按钮位于此处:
@Override
protected void onStart() {
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
mGoogleApiClient.connect();
super.onStart();
}
Run Code Online (Sandbox Code Playgroud)
接下来你可以在按钮上设置setOnClickListener:
signout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
// ...
Toast.makeText(getApplicationContext(),"Logged Out",Toast.LENGTH_SHORT).show();
Intent i=new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
小智 12
脸书
LoginManager.getInstance().logOut();
Run Code Online (Sandbox Code Playgroud)
对于谷歌
GoogleSignInOptions gso = new GoogleSignInOptions.
Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).
build();
GoogleSignInClient googleSignInClient=GoogleSignIn.getClient(context,gso);
googleSignInClient.signOut();
Run Code Online (Sandbox Code Playgroud)
从脸书登出:
public static void callFacebookLogout(Context context) {
Session session = Session.getActiveSession();
if (session != null) {
if (!session.isClosed()) {
session.closeAndClearTokenInformation();
//clear your preferences if saved
}
} else {
session = new Session(context);
Session.setActiveSession(session);
session.closeAndClearTokenInformation();
//clear your preferences if saved
}
}
Run Code Online (Sandbox Code Playgroud)
从谷歌登出:
@Override
public void onClick(View view) {
if (view.getId() == R.id.sign_out_button) {
if (mGoogleApiClient.isConnected()) {
Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
mGoogleApiClient.disconnect();
mGoogleApiClient.connect();
}
}
}
Run Code Online (Sandbox Code Playgroud)
更新自 2017 年 11 月 7 日登录和注销事件的最新代码
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
GoogleSignInClient mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
Run Code Online (Sandbox Code Playgroud)
谷歌登出
mGoogleSignInClient.signOut()
.addOnCompleteListener(this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
// [START_EXCLUDE]
updateUI(null);
// [END_EXCLUDE]
}
});
Run Code Online (Sandbox Code Playgroud)
谷歌撤销访问
mGoogleSignInClient.revokeAccess()
.addOnCompleteListener(this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
// [START_EXCLUDE]
updateUI(null);
// [END_EXCLUDE]
}
});
Run Code Online (Sandbox Code Playgroud)
在这里参考谷歌代码
登出脸书
LoginManager.getInstance().logOut();
Run Code Online (Sandbox Code Playgroud)
在此处参考 Facebook 文档
只需添加您的新活动:
@Override
protected void onStart() {
mGoogleApiClient.connect();
super.onStart();
}
Run Code Online (Sandbox Code Playgroud)
进而
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.sign_out_button2:
Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
mGoogleApiClient.disconnect();
mGoogleApiClient.connect();
Run Code Online (Sandbox Code Playgroud)
注销 Google 身份验证的最简单方法:
GoogleSignIn.getClient(getApplicationContext(), GoogleSignInOptions.DEFAULT_SIGN_IN).signOut();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22854 次 |
| 最近记录: |