我成功地让用户通过OAuth再次授权我的应用推特。回调也有效,但问题是此回调返回到恢复活动的数据为空。有人知道怎么做吗?
这是我正在执行以启动身份验证的代码:
consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
provider = new DefaultOAuthProvider("https://api.twitter.com/oauth/request_token",
"https://api.twitter.com/oauth/access_token",
"https://api.twitter.com/oauth/authorize");
String authUrl = provider.retrieveRequestToken(consumer,CALLBACK_URL);
Toast.makeText(this, "Please authorize this app!", Toast.LENGTH_LONG).show();
setConsumerProvider();
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
这是我正在使用的清单:
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application
...
<activity android:name=".AuthActivity" android:configChanges="orientation"
android:label="Comparte en redes sociales" android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="callback" />
</intent-filter>
</activity>
</application>
这是AuthActivity
的恢复代码:
protected void onResume()
{
super.onResume();
System.out.println("RESUMING!!");
if (this.getIntent()!=null && this.getIntent().getData()!=null)
{
}
}
这里this.getIntent().getData()
为空,一直在尝试其他选项而没有运气。我需要数据来提取uri。有人可以帮忙吗?
答案 0 :(得分:1)
好吧,在发布问题后我发现了问题。 launchMode="singleTask"
正在重新创建活动,为了获得uri,我应该将其放入onNewIntent
而不是onResume。现在数据已经准备就绪了:)。很抱歉给您带来不便。