Android,检查用户是不是使用 Facebook 登录

Posted

技术标签:

【中文标题】Android,检查用户是不是使用 Facebook 登录【英文标题】:Android, check if user is logged with FacebookAndroid,检查用户是否使用 Facebook 登录 【发布时间】:2017-01-10 18:52:30 【问题描述】:

我正在努力寻找一种明确的方法,即如何确定用户是否在我的 android 应用程序上使用 Facebook 登录。

Facebook 官方文档说:

您可以通过检查 AccessToken.getCurrentAccessToken() 和 Profile.getCurrentProfile() 来查看一个人是否已经登录。

但是,AccessToken.getCurrentAccessToken() 仅在 SDK 初始化完成后才可用。据我了解,这种方法可能不会一直有效:

FacebookSdk.sdkInitialize(this.getApplicationContext());
if (AccessToken.getCurrentAccessToken() != null) 
  //good

因为,正如在这个问题中所讨论的那样:

How can i find my current login status - facebook API android

它说,AccessTokenTracker() 回调 onCurrentAccessTokenChanged() 可能会被异步触发,因此,在上面的这种情况下,有可能获得 null 的值 getCurrentAccessToken()(我只会放弃比赛)。

因此,如果有可能在 SDK 初始化后立即获得 getCurrentAccessTokennull 值,并且据我所知,如果用户根本没有登录,则永远不会执行 onCurrentAccessTokenChanged(),那么。 ..如何正确检查?这对我来说似乎是一个僵局。我在这里错过了什么吗?

我做了什么:我看过官方的FB手册,一般都实现了登录,但是这个问题让我很头疼。还要检查其他一些 SO 问题,但所有解决方案都没有解释我想要什么。

另外,我想在应用程序启动时检查这个,所以我没有onResumeonStart 之类的东西。

【问题讨论】:

【参考方案1】:

试试这个:

public boolean isLoggedIn() 
AccessToken accessToken = AccessToken.getCurrentAccessToken();
return accessToken != null;

或检查:login fb

【讨论】:

嗯,我的帖子中已经提供了这样的解决方案,但它没有回答我的问题,这与这些操作的异步性质有关。您能否提供详细信息,为什么这会一直有效(根据我提供的信息)? 使用 RequestAsyncTask 类。它有一个你的请求的回调方法,【参考方案2】:

我正在做什么来验证用户是否已登录我这样做: 1- 在“OnCreate”方法上,我初始化了 SDK 和 facebook 回调管理器。 2-设置内容视图 3-设置令牌和配置文件跟踪器,然后启动它们。 4- 设置 UI,获取登录按钮 facebook 事件。 5-在“OnResume”方法上,我检查了这个:

if(Profile.getCurrentProfile() != null && AccessToken.getCurrentAccessToken() != null)
   //You are logged

我还检查用户是否登录了设置跟踪的方法。 我希望我能很好地表达自己

【讨论】:

是的,这种方法可以正常工作,但我想检查一下,如果用户登录,应用程序何时启动,所以没有类似 onResume 这样的东西可用。【参考方案3】:

是的,这种方法可以正常工作,但我想检查用户是否已登录,应用程序何时启动,因此没有可用的 onResume 之类的东西。

我做了什么来检查,我创建了一个 Splash 活动,并在该活动中检查用户是否已登录(是的,我在启动活动中初始化了 SDK),并根据该结果,我开始登录活动或主要活动。

【讨论】:

以上是关于Android,检查用户是不是使用 Facebook 登录的主要内容,如果未能解决你的问题,请参考以下文章

Android Google 登录:检查用户是不是已登录

Android Google Map如何检查用户是不是在标记矩形区域

如何检查用户是不是使用 FB SDK 4.0 for Android 登录?

检查用户是不是在 Android 的 Firebase Google 身份验证中首次通过身份验证

如何检查用户是不是已在 React Native Android 中授予相机权限?

Android:检查当前用户是不是是客人