如何从android中另一个项目的活动调用一个项目的活动?反之亦然?

时间:2012-01-05 06:42:12

标签: android

我正在做一个集成项目,它涉及将两个项目合并为一个。我想要做的是,我有一个共同的项目,这个共同项目的活动应该能够调用其他两个项目的活动,根据不同的事件,如特定按钮按,等等。我怎么能这样做?是否可以通过意图?

另外,其他两个项目的活动应该能够互相打电话。如何做到这一点?

3 个答案:

答案 0 :(得分:2)

此Android开发人员博客文章介绍了如何为其他应用程序提供自定义应用程序意图以进行此类集成:

http://android-developers.blogspot.com/2009/11/integrating-application-with-intents.html

答案 1 :(得分:2)

您必须使用意图过滤器,下面的示例代码

    PackageManager packageManager = getPackageManager();

    Intent baseIntent = new Intent(ACTION_PICK_PLUGIN);
    baseIntent.addCategory("matching.catagory");

    List<ResolveInfo> activities = packageManager.queryIntentActivities(baseIntent, PackageManager.GET_RESOLVED_FILTER);

然后使用以下内容激活意图,

Intent baseIntent = new Intent(activities.get(indexOfChild).filter.getAction(0));
baseIntent.addCategory(activities.get(indexOfChild).filter.getCategory(0));     
baseIntent.setComponent(newComponentName(activities.get(indexOfChild).activityInfo.packageName,activities.get(indexOfChild).activityInfo.name));
startActivity(baseIntent);

我希望它有所帮助..

答案 2 :(得分:0)

如果要从现有项目调用项目的MainActivity,反之亦然,可以使用PackageManager类

        Intent i;
        PackageManager manager = getPackageManager();
        try {
            i = manager.getLaunchIntentForPackage("Target package");
            if (i == null)
                throw new PackageManager.NameNotFoundException();
            i.addCategory(Intent.ACTION_VIEW );
            startActivity(i);
        } catch (PackageManager.NameNotFoundException e) {

        }