在另一个Android应用程序中打开一个应用程序

6

我正在尝试在单击按钮时,在另一个已安装的Android应用程序中打开不同的应用程序。新应用程序应在调用应用程序的屏幕部分中打开。

目前,我的代码创建了一个新的意图并在其中运行被调用的应用程序。调用应用程序消失了。这是我的代码:

        b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            PackageManager pm = getPackageManager();
            Intent intent = pm.getLaunchIntentForPackage("com.ritwik.camera");
            startActivity(intent);
        }

    });

理想情况下,它应该作为同一屏幕的一部分打开,而不是将父级(调用)应用程序置于侧边。我该如何实现这个?

1
显然,这个过程是基于多屏幕支持的,因为像S3和Grand这样的新设备已经实现了在单个屏幕中启动多个应用程序。 - Pratik
你对需求有什么进展了吗?我还卡在同样的问题上。 - skygeek
3个回答

3
当您启动一个意图来执行另一个应用程序(例如,因为您正在实现一个启动器或主菜单替代品)时,您实际上是在请求Android执行一个特定包标识的应用程序(或满足某些特定约束条件的应用程序,如处理图像、视频等),而没有任何关于它所包含的活动的线索或参考(也无法获取任何...)。
因此,我认为您尝试实现的东西在当前版本的操作系统中不可能实现(除非某些供应商提供了扩展,可以看一下Pratik的评论)。

据我所知,分屏功能(自适应 UI)从 Android 3.0 开始就得到了支持。因此,我不明白你所说的“当前版本的操作系统不支持”的意思。能否请您澄清一下? - Ritwik Dey
1
自适应用户界面(Adaptive UI)是从Android 3.0开始支持的,但已通过支持库进行了后移植。它允许您创建应用程序,其中轻量级且多功能的“Activity-like”类(称为“Fragments”)可以以不同的几何形状放置在屏幕上(例如并排放置,用于分割屏幕,但您可以自由决定放置它们的数量和位置);它不允许并排打开不同的应用程序。顺便说一下,查看这个链接:http://developer.android.com/guide/components/fragments.html(它可能不完全符合您的需求,但您仍然会喜欢它 :)) - Rick77

1
据我所知,这是不可能的。你只能启动新活动,但你无法控制它。
编辑:一些设备使用Cornerstone或类似框架可以提供此功能,但我还没有看到开发人员可以将其用于自己的应用程序的选项。

1
新的应用程序应该在调用应用程序的屏幕部分中打开。
传统的第三方应用程序UI无法实现这一点。
据我所知,分屏功能(自适应UI)从Android 3.0开始支持。
这与将第三方应用程序的UI嵌入到您自己的应用程序中无关。
所以我不明白你所说的“当前操作系统版本不支持”的意思。
截至2013年3月26日上午9:50 Eastern Time,任何股票Android版本都不可用。
某些设备制造商,如三星,已经扩展了具有多窗口功能的Android。但是,这些窗口的控制权在用户和(修改后的)操作系统手中。除非他们的S-Pen SDK中有这个功能,否则您无法启动另一个窗口。

Android同样拥有RemoteViews,这是一种在进程之间传递简化UI的方式。使用此功能,一个应用程序可以嵌入另一个应用程序发布的RemoteViews。例如,在主屏幕上看到应用程序小部件。但是,两个应用程序都必须考虑到这一点,例如应用程序发布AppWidgetProvider以提供应用程序小部件到主屏幕。


如果我想嵌入的两个应用都是我的,这是可能的吗?如果您能,请在此链接上给我指导:http://stackoverflow.com/questions/17228145/embed-activity-of-application-a-inside-application-bs-viewgroup-in-android - skygeek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接