3

Androidスマートフォンにインストールした他のアプリを起動するアプリを作っています。

基本的に、これは私が自分で作成した別のアプリケーションをパラメータで起動するために使用するコードです。

アプリケーション 1 :

PackageManager pm = getApplicationContext().getPackageManager();
Intent appStartIntent = pm.getLaunchIntentForPackage(mypackage);
    appStartIntent.putExtra("message", s);

    if (null != appStartIntent) {
        getApplicationContext().startActivity(appStartIntent);
    }

私の他のアプリケーションでは、ここでパラメータを取得する方法:

アプリケーション 2 :

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Bundle extras = getIntent().getExtras(); 
    String result;
    try {
        result= (String) extras.getString("message");
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        recup = "nothing received";
    }

    Toast.makeText(getApplicationContext(), recup, Toast.LENGTH_SHORT).show();
}

ここでの問題は、2 番目のアプリケーションが「メッセージ」というパラメーターを受け取ることができることを知る必要があることです。

質問は次のとおりです。アプリケーション 1 から、アプリケーション 2 が期待するすべての可能なパラメータを知ることは可能ですか? はいの場合、たとえば、携帯電話にインストールされているアプリケーションで受け入れられるパラメーターを知ることはできますか? (例: Handcent、Facebook、緯度...)

4

3 に答える 3

2

Android では、アプリケーションが期待するパラメーターを取得できるようにするメタデータ API が定義されていません。したがって、あなたが望むことをすることは不可能です。各アプリケーションのドキュメントに依存する必要があります。

于 2012-04-10T12:14:51.670 に答える
1

これは私に起こったので、私が知っている最善の方法は、ターゲット アプリケーションを逆コンパイルし、目的のアクティビティを表示することです。

于 2012-04-10T13:37:31.977 に答える
0

リフレクションを試してクラス内を覗き、そのメソッドと期待されるパラメーターを取得することができます。それがあなたの問題を完全に解決するかどうかはわかりませんが、それは始まりです...

于 2012-04-10T12:27:28.917 に答える