2017-07-26 28 views
0

我知道如何使用意图和应用程序的软件包名称启动应用程序。使用意向启动应用程序(从安装在设备上进行选择)

像这样:

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.google.android.gm"); 

if (launchIntent != null) { 
    startActivity(launchIntent); 
} 

我想要做的是,用户可以从安装在他/她的设备,而不是一个特定的应用选择。

我该怎么做?

另外,我想开一个浮动窗口内的其他应用程序(也许在自定义警告对话框或等价的,如果有可能的话)

回答

1

我该怎么办呢?

使用PackageManagerqueryIntentActivities()找出所有的标准主屏幕发射Intent结构(ACTION_MAINCATEGORY_LAUNCHER),响应活动。将这些呈现给用户(例如列表中)。请参阅this sample app

我想开一个浮动窗口内的其他应用程序(也许在自定义警告对话框或等价的,如果有可能的话)

您将需要实现自己的移动操作系统系统。即使Android 7.0的多窗口支持也不支持该功能,除非设备已经处于自由形式的多窗口模式(例如Chrome OS)。欢迎您使用FLAG_ACTIVITY_NEW_TASK将该活动启动到另一个任务中,这将在自由形式的多窗口设备上为其提供单独的窗口。

+0

我可以在应用程序内打开其他应用程序吗?假设我有一个弹出式窗口或提示对话框,所以启动的应用程序将显示在那里? –

+0

@TsurYohananov:不是我将如何定义为“在我的应用程序内”。 – CommonsWare

+0

假设我有一个弹出窗口或提示对话框,以便启动的应用程序将显示在那里? –

相关问题