Android studio twitter检查用户是否已登录

时间:2016-08-11 17:15:59

标签: java android-studio twitter login tweets

我已经关注了twitter fabric登录,除了试图发布推文的部分外,一切正常。当我执行以下代码时,我需要再次登录,所以看起来我必须检查一个访问令牌或一些,但我不知道,也无法找到如何做到这一点。

@Override
    public void onCreate(Bundle savedInstanceState) {

        //initialize facebook sdk
        FacebookSdk.sdkInitialize(getActivity().getApplicationContext());

        super.onCreate(savedInstanceState);

        TwitterSession session = Twitter.getSessionManager().getActiveSession();
        TwitterAuthToken authToken = session.getAuthToken();
        String token = authToken.token;
        String secret = authToken.secret;

        if (token != null ) {
            Log.d(TAG, "twitter token" + token);
        }

        if (secret != null ) {
            Log.d(TAG, "twitter secret" + secret);
        }

        TwitterAuthConfig authConfig =  new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
        Fabric.with(this.getActivity(), new TwitterCore(authConfig), new TweetComposer());

}

然后我使用函数发布推文

 public void TwitterSharing() {

        Log.d(TAG, "Running twitter share");

        Log.d(TAG, "Share on twitter 1: " + sport);
        Log.d(TAG, "Share on twitter 2: " + speed);
        Log.d(TAG, "Share on twitter 3: " + distance);
        Log.d(TAG, "Share on twitter 4: " + date);


        Log.d(TAG, "Shared image url: " + sharedImage);


        TweetComposer.Builder builder = new TweetComposer.Builder(this.getActivity())
                .text("just setting up my Fabric.")
                .image(Uri.parse(sharedImage));
        builder.show();

    }

这一切都有效,但在网页上加载我需要再次登录,这不应该发生,但我不知道如何。

感谢您的任何意见。

1 个答案:

答案 0 :(得分:0)

为此,您需要将Activity作为启动器活动。我们称之为DispatchActivity

public class DispatchActivity extends Activity{
    @Override
    public void onCreate(Bundle savedInstanceState){
        This returns true if user is logged in.
        boolean isLoggedIn = mSharedPreferences.getBoolean(PREF_KEY_TWITTER_LOGIN, false);
        if (isLoggedIn){
            //User is logged in, take him to your activity
            Intent i = new Intent(this,yourMainActivity.class);
            this.startActivity(i);
        }
        else{
            //User is not logged in, take him to your SignIn activity
            Intent i = new Intent(this,SignUp.class);
            this.startActivity(i);
        }
    }
}

请记住将此作为启动器活动,并且不要为其创建布局文件。