以前は機能していたので、何時間もこれに固執していましたが、突然停止して期待どおりに動作しなくなりました。何が問題なのかを確認することができずに、プロセス内のコードのすべての行を再チェックしているため、その方法と理由がよくわからないので、皆さんに助けを求めています.
大丈夫。そのため、クリック時LoginScreen
に新しいボタンを開始するアクティビティがありIntent.ACTION_VIEW
ます。ApiManager.OAUTH_CALLBACK_URI
これにより、 に設定されたブラウザで OAUTH プロセスが開始され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
が、... そうです、もう期待どおりに動作しません。
どんな助けでも感謝します。