Mas*_*rat 19 android facebook android-activity
我有一个Activity应该处理来自Facebook SDK和其他自定义活动的结果.
我在哪里可以找到Facebook SDK使用的requestCodes,以便不对我的活动使用相同的请求代码?
我应该能够在onActivityResult使用requestCode时区分它们,因此它们必须是唯一的.
Ind*_*ore 29
在sdkInitialize通话中传递请求代码
FacebookSdk.sdkInitialize(context, 1200);
Run Code Online (Sandbox Code Playgroud)
然后
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (FacebookSdk.isFacebookRequestCode(requestCode)) {
//Facebook activity result
//Do your stuff here
//Further you can also check if it's login or Share etc by using
//CallbackManagerImpl as explained by rajath's answer here
if (requestCode == CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()) {
//login
}
else if (requestCode == CallbackManagerImpl.RequestCodeOffset.Share.toRequestCode()){
//share
}
}
Run Code Online (Sandbox Code Playgroud)
来自文档
isFacebookRequestCode(INT)
如果请求代码在Facebook SDK请求使用的范围内,则返回true.这不包括您在对话框,按钮或LoginManager上明确设置的请求代码.SDK使用的请求代码范围从callbackRequestCodeOffset开始,并继续接下来的100个值.
sdkInitialize(Context,int)
此函数初始化Facebook SDK,如果未调用此函数,则不确定Facebook SDK函数的行为.它应该尽早调用.
public static synchronized void sdkInitialize(Context applicationContext, int callbackRequestCodeOffset)
applicationContext应用程序上下文
callbackRequestCodeOffset将调用Facebook活动的请求代码偏移量.请不要在您的其他请求中使用您设置的值与其后的其他100个条目之间的范围.
Ape*_*rei 26
转到CallbackManagerImpl.RequestCodeOffset.我个人使用这样的代码来防止不必要的行为.
if (requestCode == CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()) {
callbackManager.onActivityResult(requestCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud)
Dim*_*tar 13
试试这个:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
//Log.iClassMethod();
switch(requestCode)
{
case 1:
if (resultCode == Activity.RESULT_OK)
{
// do something ...
}
break;
case ...:
if (resultCode == Activity.RESULT_OK)
{
// do something ...
}
break;
case Session.DEFAULT_AUTHORIZE_ACTIVITY_CODE:
{
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
Log.i("Facebook");
}
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10553 次 |
| 最近记录: |