在另一个内部打开Android应用程序

时间:2013-03-26 12:18:37

标签: android android-intent android-activity

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

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

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

    });

理想情况下,它应该作为同一屏幕的一部分打开,而不会使父(调用)应用程序边缘化。我该怎么做?

3 个答案:

答案 0 :(得分:3)

当你启动一个Intent来执行另一个应用程序时(即因为你正在实现一个启动器或一个主菜单替换)你实际上要求android执行用特定包识别的应用程序(或满足某些特定约束的应用程序,如处理图像,视频等的能力,没有任何关于它所包含的活动的线索或参考(也没有获得任何......的能力。)。

因此,我不认为您使用当前版本的操作系统可以实现的目标(除非某些供应商提供扩展功能,请参阅Pratik的评论)。

答案 1 :(得分:1)

据我所知,这是不可能的。您只能启动新活动,但无法控制它。

编辑:有些设备使用Cornerstone或类似的框架提供了这种可能性,但我还没有看到开发人员将其用于自己的应用程序的选项。

答案 2 :(得分:1)

  

应在调用应用程序的屏幕的一部分中打开新应用程序。

传统的第三方应用程序UI无法实现这一点。

  

AFAIK,从Android 3.0开始支持分屏功能(自适应用户界面)。

这与将第三方应用的UI嵌入到您自己的内容无关。

  

所以我没有得到你的意思,“用当前版本的操作系统来说这是不可能的”

2013年3月26日美国东部时间上午9:50发布的任何Android版本都不提供此功能。

某些设备制造商,如三星,已经扩展了具有多窗口功能的Android。但是,对这些窗口的控制在于用户和(修改的)OS。除非他们的S-Pen SDK中有任何内容,否则你无法启动另一个窗口。

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