2011-02-09 12 views
0

外部アプリケーションのアクティビティの結果を取得して、それをトリガしたアプリケーションがその変更を知ることができる方法。例えばのために外部アプリケーションの動作からどのように結果を得るには?

私のアプリケーションは、ユーザーがログインしているかどうかを確認する必要がログインしていない場合は、外部アプリからログインすることができます。

現在のアプリです。 onActivityForResult()を呼び出して外部Appのアクティビティをトリガーし、 onActivityResult()を呼び出して、外部Appのアクティビティの終了ステータスを処理します。


解決済み。

ごめんなさい。

私はテストの全セッションで間違いを犯したことに気付きました。 ファイルに変更を加えるたびに、私の理解とコードはうまくいったが、のたびに、私は決して外部アプリを実行しなかった。更新されたコード

私自身も解決策を見つけましたが、私は解決策へのヒントとしてNanneの答えを考えています。

おかげで貴重な時間のために申し訳ありません。

+1

問題は何ですか?これはあなたが今説明した方法で行われます。 startActivityForResult()を呼び出します。外部アプリのアクティビティは、戻り値を設定し、終了時にonActivityResult()で自分のActivity内の値を処理します。外部アプリが必要な戻り値を提供せず、そのアプリを変更できない場合、それは致命的な終わりです。 –

答えて

1

のためのuに便利なコードですstartActivityForResult()は提供されたコードでこの結果を確認できますin the example

protected void onActivityResult(int requestCode, int resultCode, 
     Intent data) { 
    if (requestCode == PICK_CONTACT_REQUEST) { 
     if (resultCode == RESULT_OK) { 
      //do something 
     } 
    } 
} 
1

これはあなたが始めたあなたの活動が呼ばれることを、setResult(intValue)

あなたの最初の活動と結果値を設定する必要があります別のアプリへの1つのアプリ

btn.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent res = new Intent(); 
     String mPackage = "com.ReachOut"; 
     String mClass = ".splash1"; 
     res.setComponent(new ComponentName(mPackage,mPackage+mClass)); 
     startActivity(res); 
    } 
}); 
+0

あなたが自分の活動にアクセスしたいと考える第三者は、あなたが従うための安定した意図パターンを提供します。ここに表示されているコードは、サードパーティのアプリが更新されたときに破損する可能性があります。このアプローチを使用しないでください。 – CommonsWare

+0

ありがとうCommonsWare –

関連する問題