java TwitterAuthClient onActivityResult

标签 java onactivityresult twitter-fabric

我尝试通过 com.twitter.sdk.android.Twitter 用 Ja​​va 编写一个认证 Twitter。请参阅下面我的代码:

import com.twitter.sdk.android.Twitter;
import com.twitter.sdk.android.*;
import com.twitter.sdk.android.core.*;
import com.twitter.sdk.android.core.TwitterCore;
import com.twitter.sdk.android.core.TwitterCore.*;
import com.twitter.sdk.android.core.identity.TwitterAuthClient;
import com.twitter.sdk.android.core.OAuthSigning;
import com.twitter.sdk.android.core.Callback;
import com.twitter.sdk.android.core.Result;
import com.twitter.sdk.android.core.TwitterException;
import com.twitter.sdk.android.core.TwitterSession;
import java.lang.Object.*;
import io.fabric.sdk.android.Fabric;
import android.content.Intent;
import android.app.Fragment;
public static void authentificationTwitter() {
    classAuthentificationTwitter auth=new classAuthentificationTwitter();
    auth.execAuthentificationTwitter();
}

public static class classAuthentificationTwitter extends Activity{
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    public void execAuthentificationTwitter() {
        Log.v("myLog", "authentificationTwitter");    
        TwitterAuthConfig authConfig = new TwitterAuthConfig("xxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
        TwitterCore twitter = new TwitterCore(authConfig);    
        Fabric.with(getCurrentActivity(), twitter);
        client = new TwitterAuthClient();
        client.authorize(getCurrentActivity(), new Callback<TwitterSession>() {
            @Override
            public void success(Result<TwitterSession> twitterSessionResult) {
                Log.v("myLog", "authentificationTwitter Success");        
            }
            @Override
            public void failure(TwitterException e) {
                Log.v("myLog", "authentificationTwitter echec");
            }
        });
        //startActivityForResult(getIntent(),99);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        Log.v("myLog", "authentificationTwitter onActivityResult : " + requestCode + " / " + resultCode + " / " + data);
        super.onActivityResult(requestCode, resultCode, data);

        if (client != null) {
            client.onActivityResult(requestCode, resultCode, data);
        }
    }

}


static TwitterAuthClient client;

问题是,我的回调从未调用过。我读到,修改主 Activity 中的 onActivityResult 方法来分派(dispatch)结果就可以了,但我无法访问它。我只能修改我正确的代码。

也许有人可以帮助我。 预先感谢您的帮助。

P.S:我是 Java 新闻...

最佳答案

您需要在 Activity 中调用 onActivityResult。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
    super.onActivityResult(requestCode, resultCode, data);
   // Pass the activity result to the login button.
    loginButton.onActivityResult(requestCode, resultCode, data);
}

如果回调在一个fragment内部。您需要在 Activity 和 Fragment 中调用 onActivityResult。 请查看https://dev.twitter.com/twitterkit/android/log-in-with-twitter

关于java TwitterAuthClient onActivityResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42441513/

相关文章:

android - 如何从 onActivityResult 获取任何文件路径、名称、扩展名?

android - 从android更新状态时Facebook挂起授权异常

ios -/Fabric.framework/运行 : Permission denied

java - 使用 Picasso 库加载图像时如何避免样板代码

java - ListFragment 仅显示第一项

java - 如何将多种类型的用户重定向到实时Firebase数据库中各自的 Activity ?

android - onActivityResult 执行两次

java - Arrays在Java的ByteCode中是如何工作的

android - 如何禁用 Crashlytics Answers?

ios - 使用 Jenkins 和 Fabric 在工作区中持续集成 iOS 项目