我试图在点击按钮的同时打开另一个已安装的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);
}
});
理想情况下,它应该作为同一屏幕的一部分打开,而不会使父(调用)应用程序边缘化。我该怎么做?
答案 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
以向主屏幕提供应用程序小部件。