java TwitterAuthClient onActivityResult
Posted
技术标签:
【中文标题】java TwitterAuthClient onActivityResult【英文标题】: 【发布时间】:2017-02-24 14:46:41 【问题描述】:我尝试通过 com.twitter.sdk.android.Twitter 用 Java 编写身份验证 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 方法来调度结果,但我无法访问它。我只能修改我的正确代码。
可能有人可以帮助我。 提前感谢您的帮助。
P.S:我是 Java 中的新闻……
【问题讨论】:
getCurrentActivity()
是做什么的? onActivityResult()
将在您传入client.authorize(activity, callback)
的Activity
上调用。你为什么不打电话给client.authorize(this, callback)
?
感谢您的回复,我在名为 Windev mobil 的 IDE 上使用,getCurrentActivity 等同于“this”。
您调用execAuthentificationTwitter()
的方式对于Android 来说似乎有点不正统。您是从 static
方法调用它,我假设您是从另一个类调用它?如果您要在 Activity 启动后立即启动身份验证,则应在 onCreate()
方法中调用 execAuthentificationTwitter()
【参考方案1】:
您需要在活动中调用 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);
如果片段内的回调。您需要在活动和片段中调用 onActivityResult。 请查看https://dev.twitter.com/twitterkit/android/log-in-with-twitter
【讨论】:
以上是关于java TwitterAuthClient onActivityResult的主要内容,如果未能解决你的问题,请参考以下文章
java GetOriginalPdfDocWithTransformation.java
java GetOriginalPdfDocWithTransformation.java
java.sql.SQLException:接近“on”:语法错误问题