如何通过 Android 应用在 Android 中显示特定的主屏幕。例如,在我的应用程序上按下主页按钮时,我想显示一个特定的主屏幕。由于可以有多个主屏幕,所以希望操作系统显示特定的主屏幕。
以及如何获取从 android 应用程序配置的主屏幕数量?
请让我知道是否有人有同样的想法。
谢谢。
如何通过 Android 应用在 Android 中显示特定的主屏幕。例如,在我的应用程序上按下主页按钮时,我想显示一个特定的主屏幕。由于可以有多个主屏幕,所以希望操作系统显示特定的主屏幕。
以及如何获取从 android 应用程序配置的主屏幕数量?
请让我知道是否有人有同样的想法。
谢谢。
因为主屏幕只不过是另一个安装了一个在清单中声明的带有该android:name="android.intent.category.HOME"
属性的活动的应用程序,因此要获取所有主屏幕的列表 - 您所要做的就是查询包管理器以获取具有此属性的所有包的列表:
Intent intent = new Intent(Intent.ACTION_HOME, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List pkgHomeAppsList = getPackageManager().queryIntentActivities(intent , 0);
你可以得到它的大小 - 当然pkgHomeAppsList.count();
此外,您可以从列表中选择每个包,然后像这样启动它:
Intent launchIntent = getPackageManager().getLaunchIntentForPackage(packageInfo.packageName));
launchIntent.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(launchIntent);
例如,在我的应用程序上按下主页按钮时,我想显示一个特定的主屏幕
当用户按下主页按钮时,您无法控制将启动哪个主屏幕。只有用户,通过在意图选择器中选择他可用的选项。除非您在有根设备上运行您的应用程序..
我想说的是,正如我在点击主页按钮时显示的那样,启动活动是有可能的,但是这个事件不能从没有系统签名的应用程序中截获,所以你也可以忘记这一点。
即使你设法做到了 - 我必须警告你,像这样启动主屏幕应用程序是一种非常糟糕的方法。除非您有充分的理由(例如,如果您的应用程序设计为在特定公司的 ciosk 模式下工作或类似的东西......)