QA@IT

AndroidアプリでFacebook認証後、アプリのアクティビティにFlagsを与える方法

2288 PV

AndroidアプリからFacebookを使用したいと思ってます。
アプリからブラウザを起動してFacebookの認証画面を呼び出し、Facebookの認証をブラウザで行いました。
その後、アプリに戻ってきて、Activityを開こうとしました。
この時、Flagsの設定方法が判りません。

Activityを生成する時、こんな感じでFlagsを設定すると思います。

Intent intent = new Intent(this, SampleActivity.class);
//アクティビティのフラグを設定する
int flags = Intent.FLAG_ACTIVITY_NEW_TASK;
intent.setFlags(flags);

しかし、ブラウザからアプリを呼び出す設定は、AndroidManifest.xmlに存在します。
以下のような記述をするはずです。

<activity
  android:name=".activity.SampleActivity"
  android:configChanges="orientation|keyboardHidden"
  android:windowSoftInputMode="adjustResize" >
  <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:host="samplegateway"
      android:scheme="web-samplegateway" />
  </intent-filter>
</activity>

setFlagsに対応するような記述があれば、教えてもらえないでしょうか。

回答

事故解決しました。

AndroidManifest.xml の activityの定義を以下のようにすることで対処できました。
android:launchMode="singleTask"
を追加する事で、同じような処理となりました。

<activity
    android:name=".activity.SampleActivity"
    android:configChanges="orientation|keyboardHidden"
    android:windowSoftInputMode="adjustResize"
    android:allowTaskReparenting="true"
    android:clearTaskOnLaunch="true"
    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:host="sample"
            android:scheme="sample-gateway" />
    </intent-filter>
</activity>
編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。