我一直停留在这几个小时,现在的事情是以前的工作,但突然停下来像预期的那样。 我真的不知道如何和为什么,因为我一直在重新检查的过程中每一行代码,而不能看到什么是错的,所以我要问你的帮助球员。
好的。 所以我有一个LoginScreen
活动的一个按钮启动一个新的Intent.ACTION_VIEW
上点击。 这开始与浏览器中的OAUTH proccess ApiManager.OAUTH_CALLBACK_URI
设置为stjapp://oauthresponse
。
这里是我AndroidManifest.xml
这项活动的一部分:
<activity
android:name=".LoginScreen"
android:label="@string/application"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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="stjapp" android:host="oauthresponse" />
</intent-filter>
</activity>
如何我开始Intent.ACTION_VIEW
在我的活动:
private View.OnClickListener loginHandler = new View.OnClickListener() {
public void onClick(View v) {
OAuthClientRequest request = null;
try {
request = OAuthClientRequest
.authorizationLocation(ApiManager.OAUTH_AUTHORIZE)
.setClientId(ApiManager.CLIENT_ID).setRedirectURI(ApiManager.OAUTH_CALLBACK_URI)
.buildQueryMessage();
}
catch (OAuthSystemException e) { e.printStackTrace(); }
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(request.getLocationUri() + "&response_type=code"));
startActivity(intent);
}
};
下面是在浏览器中会发生什么的截图:
在那里,我应该回到我LoginScreen
活动和处理code
中的查询参数onNewIntent
方法,但...是啊,事情并不如预期了工作。
任何帮助表示赞赏。