Kun*_*alK 5 android parse-platform facebook-sdk-4.0
使用LoginManager该类进行日志记录时,我遇到了一个奇怪的问题.我LoginManager.getInstance().logInWithReadPermissions(..)从一个片段调用登录所需的权限.
我已尽可能调试,我发现返回onActivityResult到此片段的父活动的回调请求代码是错误的.下面的代码来自LoginManager使用某些请求代码注册用于登录的回调的类.
...
CallbackManagerImpl.registerStaticCallback(
CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode(),
new CallbackManagerImpl.Callback() {
@Override
public boolean onActivityResult(int resultCode, Intent data) {
return LoginManager.this.onActivityResult(resultCode, data);
}
}
);
...
Run Code Online (Sandbox Code Playgroud)
但是当它调用活动的onActivityResult时,它不是CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()其他东西,而是它的双倍.例如,当我尝试调试并检查值时,它是这样的:
CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()= 64206
requestCode在Activity class = 129742中收到
而现在因为这个,当callbackManager试图调用onActivityResult之类的时候
callbackManager.onActivityResult(requestCode,resultCode,data);
有了这个requestCode,它没有从地图中找到logincallback继续前进,它就在那里停止.我不知道为什么会发生这种情况,因为我正在使用ParseFacebookSDK,而当我使用ParseFacebookUtils.logInWithReadPermissionsInBackground(..)它进行登录时效果非常好.以下是gradle依赖项.
...
compile 'com.facebook.android:facebook-android-sdk:4.7.0'
compile('com.parse:parse-android:1.13.0') {
exclude group: 'com.parse.bolts',
module: 'bolts-tasks'
}
compile 'com.parse:parsefacebookutils-v4-android:1.10.3@aar'
...
Run Code Online (Sandbox Code Playgroud)
如果您能提供帮助,将不胜感激.谢谢.
更新:
当我尝试从父活动而不是片段登录facebook时,它对我有用,这次它在活动的onActivityResult中返回了正确的请求代码,它只是起作用.这已经解决了我的问题,但仍然想在这里理解片段的问题,所以如果你知道请分享你的想法.谢谢.
| 归档时间: |
|
| 查看次数: |
317 次 |
| 最近记录: |