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();
}

这里的问题是,我们需要知道第二个应用程序可以接收一个名为“消息”的参数。

这是一个问题:是否有可能从应用程序 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 回答