1

让我试着清楚我想要什么。我有一个按钮,当我单击该按钮时,我想检测设备中是否有任何活动的 twitter 会话,或者我是否登录了设备中的 twitter 帐户。如果我已连接,我想使用 twitter 帐户,以某种方式将会话保存在我的应用程序中,并在我想通过 twitter 在我的应用程序中共享某些内容时使用它,而无需再次登录。

我发现的大多数示例都是从我的应用程序本身发推文,例如这个http://www.androidhive.info/2012/09/android-twitter-oauth-connect-tutorial/

我只是想检测一下,如果我连接到 Twitter 帐户,我想在我的应用程序中使用它,并在我调用 Share Intent 时使用它们。

4

2 回答 2

0

你可以在 TwitterApp.java (twitter4j) 中找到这个方法

public boolean isAuthenticated() {    
        try {
            AccessToken a = mSession.getAccessToken();
            mTwitter = new TwitterFactory().getInstance();
            mTwitter.setOAuthConsumer(Constants.CONSUMER_KEY,
                    Constants.CONSUMER_SECRET);
            mTwitter.setOAuthAccessToken(a);    

            try {
                mTwitter.getAccountSettings();
                return true;
            } catch (TwitterException e) {
                return false;
            }
        } catch (Exception e) {

            e.printStackTrace();
            return false;
        }
    }
于 2012-11-28T09:10:41.280 回答
0

获取此首选项的默认值

this.prefs = PreferenceManager.getDefaultSharedPreferences(this);

并借助此值检查使用 isAuthenticated 方法的身份验证,该方法写在下面

if (TwitterUtils.isAuthenticated(prefs)) {

                    sendTweet();
                } else {
                    Intent i = new Intent(getApplicationContext(), PrepareRequestTokenActivity.class);
                       startActivity(i);
                }
public static boolean isAuthenticated(SharedPreferences prefs) {

    String token = prefs.getString(OAuth.OAUTH_TOKEN, "");
    String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET, "");

    AccessToken a = new AccessToken(token,secret);
    Twitter twitter = new TwitterFactory().getInstance();
    twitter.setOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
    twitter.setOAuthAccessToken(a);

    try {
        twitter.getAccountSettings();
        return true;
    } catch (TwitterException e) {
        return false;
    }
}
于 2012-11-28T09:12:26.853 回答